From daf32fccc2177e44c04d3bb37eff9b1fa5b8fb46 Mon Sep 17 00:00:00 2001 From: ilovintit Date: Sun, 15 Jun 2025 21:18:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=831.0.5=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist/index.js | 5 ++++- dist/index.js.map | 2 +- src/main.ts | 5 ++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/dist/index.js b/dist/index.js index 9903fbe..b26d5aa 100644 --- a/dist/index.js +++ b/dist/index.js @@ -198991,7 +198991,10 @@ async function run() { const kc = new KubeConfig(); kc.loadFromFile(require$$1$2.join(workspace, clusterPath + deployConfig.cluster + '.yaml')); const applyHttps = await kc.applyToHTTPSOptions({ - httpsAgent: new Agent({ + headers: { + 'x-kubernetes-passthrough-auth': 'true' + }, + agent: new Agent({ rejectUnauthorized: false, servername: '127.0.0.1', checkServerIdentity: () => undefined diff --git a/dist/index.js.map b/dist/index.js.map index 3bab827..7f3baa9 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../node_modules/@actions/core/lib/utils.js","../node_modules/@actions/core/lib/command.js","../node_modules/@actions/core/lib/file-command.js","../node_modules/@actions/http-client/lib/proxy.js","../node_modules/tunnel/lib/tunnel.js","../node_modules/tunnel/index.js","../node_modules/undici/lib/core/symbols.js","../node_modules/undici/lib/core/errors.js","../node_modules/undici/lib/core/constants.js","../node_modules/undici/lib/core/util.js","../node_modules/undici/lib/timers.js","../node_modules/@fastify/busboy/deps/streamsearch/sbmh.js","../node_modules/@fastify/busboy/deps/dicer/lib/PartStream.js","../node_modules/@fastify/busboy/lib/utils/getLimit.js","../node_modules/@fastify/busboy/deps/dicer/lib/HeaderParser.js","../node_modules/@fastify/busboy/deps/dicer/lib/Dicer.js","../node_modules/@fastify/busboy/lib/utils/decodeText.js","../node_modules/@fastify/busboy/lib/utils/parseParams.js","../node_modules/@fastify/busboy/lib/utils/basename.js","../node_modules/@fastify/busboy/lib/types/multipart.js","../node_modules/@fastify/busboy/lib/utils/Decoder.js","../node_modules/@fastify/busboy/lib/types/urlencoded.js","../node_modules/@fastify/busboy/lib/main.js","../node_modules/undici/lib/fetch/constants.js","../node_modules/undici/lib/fetch/global.js","../node_modules/undici/lib/fetch/util.js","../node_modules/undici/lib/fetch/symbols.js","../node_modules/undici/lib/fetch/webidl.js","../node_modules/undici/lib/fetch/dataURL.js","../node_modules/undici/lib/fetch/file.js","../node_modules/undici/lib/fetch/formdata.js","../node_modules/undici/lib/fetch/body.js","../node_modules/undici/lib/core/request.js","../node_modules/undici/lib/dispatcher.js","../node_modules/undici/lib/dispatcher-base.js","../node_modules/undici/lib/core/connect.js","../node_modules/undici/lib/llhttp/utils.js","../node_modules/undici/lib/llhttp/constants.js","../node_modules/undici/lib/handler/RedirectHandler.js","../node_modules/undici/lib/interceptor/redirectInterceptor.js","../node_modules/undici/lib/llhttp/llhttp-wasm.js","../node_modules/undici/lib/llhttp/llhttp_simd-wasm.js","../node_modules/undici/lib/client.js","../node_modules/undici/lib/node/fixed-queue.js","../node_modules/undici/lib/pool-stats.js","../node_modules/undici/lib/pool-base.js","../node_modules/undici/lib/pool.js","../node_modules/undici/lib/balanced-pool.js","../node_modules/undici/lib/compat/dispatcher-weakref.js","../node_modules/undici/lib/agent.js","../node_modules/undici/lib/api/readable.js","../node_modules/undici/lib/api/util.js","../node_modules/undici/lib/api/abort-signal.js","../node_modules/undici/lib/api/api-request.js","../node_modules/undici/lib/api/api-stream.js","../node_modules/undici/lib/api/api-pipeline.js","../node_modules/undici/lib/api/api-upgrade.js","../node_modules/undici/lib/api/api-connect.js","../node_modules/undici/lib/api/index.js","../node_modules/undici/lib/mock/mock-errors.js","../node_modules/undici/lib/mock/mock-symbols.js","../node_modules/undici/lib/mock/mock-utils.js","../node_modules/undici/lib/mock/mock-interceptor.js","../node_modules/undici/lib/mock/mock-client.js","../node_modules/undici/lib/mock/mock-pool.js","../node_modules/undici/lib/mock/pluralizer.js","../node_modules/undici/lib/mock/pending-interceptors-formatter.js","../node_modules/undici/lib/mock/mock-agent.js","../node_modules/undici/lib/proxy-agent.js","../node_modules/undici/lib/handler/RetryHandler.js","../node_modules/undici/lib/global.js","../node_modules/undici/lib/handler/DecoratorHandler.js","../node_modules/undici/lib/fetch/headers.js","../node_modules/undici/lib/fetch/response.js","../node_modules/undici/lib/fetch/request.js","../node_modules/undici/lib/fetch/index.js","../node_modules/undici/lib/fileapi/symbols.js","../node_modules/undici/lib/fileapi/progressevent.js","../node_modules/undici/lib/fileapi/encoding.js","../node_modules/undici/lib/fileapi/util.js","../node_modules/undici/lib/fileapi/filereader.js","../node_modules/undici/lib/cache/symbols.js","../node_modules/undici/lib/cache/util.js","../node_modules/undici/lib/cache/cache.js","../node_modules/undici/lib/cache/cachestorage.js","../node_modules/undici/lib/cookies/constants.js","../node_modules/undici/lib/cookies/util.js","../node_modules/undici/lib/cookies/parse.js","../node_modules/undici/lib/cookies/index.js","../node_modules/undici/lib/websocket/constants.js","../node_modules/undici/lib/websocket/symbols.js","../node_modules/undici/lib/websocket/events.js","../node_modules/undici/lib/websocket/util.js","../node_modules/undici/lib/websocket/connection.js","../node_modules/undici/lib/websocket/frame.js","../node_modules/undici/lib/websocket/receiver.js","../node_modules/undici/lib/websocket/websocket.js","../node_modules/undici/index.js","../node_modules/@actions/http-client/lib/index.js","../node_modules/@actions/http-client/lib/auth.js","../node_modules/@actions/core/lib/oidc-utils.js","../node_modules/@actions/core/lib/summary.js","../node_modules/@actions/core/lib/path-utils.js","../node_modules/@actions/io/lib/io-util.js","../node_modules/@actions/io/lib/io.js","../node_modules/@actions/exec/lib/toolrunner.js","../node_modules/@actions/exec/lib/exec.js","../node_modules/@actions/core/lib/platform.js","../node_modules/@actions/core/lib/core.js","../node_modules/js-yaml/dist/js-yaml.mjs","../node_modules/webidl-conversions/lib/index.js","../node_modules/whatwg-url/lib/utils.js","../node_modules/tr46/index.js","../node_modules/whatwg-url/lib/url-state-machine.js","../node_modules/whatwg-url/lib/URL-impl.js","../node_modules/whatwg-url/lib/URL.js","../node_modules/whatwg-url/lib/public-api.js","../node_modules/node-fetch/lib/index.mjs","../node_modules/jsonpath-plus/dist/index-node-esm.js","../node_modules/@kubernetes/client-node/dist/azure_auth.js","../node_modules/@kubernetes/client-node/dist/config_types.js","../node_modules/@kubernetes/client-node/dist/exec_auth.js","../node_modules/@kubernetes/client-node/dist/file_auth.js","../node_modules/@kubernetes/client-node/dist/gcp_auth.js","../node_modules/@kubernetes/client-node/dist/gen/rxjsStub.js","../node_modules/@kubernetes/client-node/dist/gen/http/isomorphic-fetch.js","../node_modules/@kubernetes/client-node/dist/gen/http/http.js","../node_modules/@kubernetes/client-node/dist/gen/auth/auth.js","../node_modules/@kubernetes/client-node/dist/gen/models/AdmissionregistrationV1ServiceReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/AdmissionregistrationV1WebhookClientConfig.js","../node_modules/@kubernetes/client-node/dist/gen/models/ApiextensionsV1ServiceReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/ApiextensionsV1WebhookClientConfig.js","../node_modules/@kubernetes/client-node/dist/gen/models/ApiregistrationV1ServiceReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/AuthenticationV1TokenRequest.js","../node_modules/@kubernetes/client-node/dist/gen/models/CoreV1EndpointPort.js","../node_modules/@kubernetes/client-node/dist/gen/models/CoreV1Event.js","../node_modules/@kubernetes/client-node/dist/gen/models/CoreV1EventList.js","../node_modules/@kubernetes/client-node/dist/gen/models/CoreV1EventSeries.js","../node_modules/@kubernetes/client-node/dist/gen/models/DiscoveryV1EndpointPort.js","../node_modules/@kubernetes/client-node/dist/gen/models/EventsV1Event.js","../node_modules/@kubernetes/client-node/dist/gen/models/EventsV1EventList.js","../node_modules/@kubernetes/client-node/dist/gen/models/EventsV1EventSeries.js","../node_modules/@kubernetes/client-node/dist/gen/models/FlowcontrolV1Subject.js","../node_modules/@kubernetes/client-node/dist/gen/models/RbacV1Subject.js","../node_modules/@kubernetes/client-node/dist/gen/models/StorageV1TokenRequest.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1APIGroup.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1APIGroupList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1APIResource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1APIResourceList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1APIService.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1APIServiceCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1APIServiceList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1APIServiceSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1APIServiceStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1APIVersions.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1AWSElasticBlockStoreVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Affinity.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1AggregationRule.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1AppArmorProfile.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1AttachedVolume.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1AuditAnnotation.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1AzureDiskVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1AzureFilePersistentVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1AzureFileVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Binding.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1BoundObjectReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CSIDriver.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CSIDriverList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CSIDriverSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CSINode.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CSINodeDriver.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CSINodeList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CSINodeSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CSIPersistentVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CSIStorageCapacity.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CSIStorageCapacityList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CSIVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Capabilities.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CephFSPersistentVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CephFSVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CertificateSigningRequest.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CertificateSigningRequestCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CertificateSigningRequestList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CertificateSigningRequestSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CertificateSigningRequestStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CinderPersistentVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CinderVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ClientIPConfig.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ClusterRole.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ClusterRoleBinding.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ClusterRoleBindingList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ClusterRoleList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ClusterTrustBundleProjection.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ComponentCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ComponentStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ComponentStatusList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Condition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ConfigMap.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ConfigMapEnvSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ConfigMapKeySelector.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ConfigMapList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ConfigMapNodeConfigSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ConfigMapProjection.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ConfigMapVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Container.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ContainerImage.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ContainerPort.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ContainerResizePolicy.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ContainerState.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ContainerStateRunning.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ContainerStateTerminated.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ContainerStateWaiting.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ContainerStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ContainerUser.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ControllerRevision.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ControllerRevisionList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CronJob.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CronJobList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CronJobSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CronJobStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CrossVersionObjectReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CustomResourceColumnDefinition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CustomResourceConversion.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CustomResourceDefinition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CustomResourceDefinitionCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CustomResourceDefinitionList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CustomResourceDefinitionNames.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CustomResourceDefinitionSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CustomResourceDefinitionStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CustomResourceDefinitionVersion.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CustomResourceSubresourceScale.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CustomResourceSubresources.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1CustomResourceValidation.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1DaemonEndpoint.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1DaemonSet.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1DaemonSetCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1DaemonSetList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1DaemonSetSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1DaemonSetStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1DaemonSetUpdateStrategy.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1DeleteOptions.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Deployment.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1DeploymentCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1DeploymentList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1DeploymentSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1DeploymentStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1DeploymentStrategy.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1DownwardAPIProjection.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1DownwardAPIVolumeFile.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1DownwardAPIVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1EmptyDirVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Endpoint.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1EndpointAddress.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1EndpointConditions.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1EndpointHints.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1EndpointSlice.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1EndpointSliceList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1EndpointSubset.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Endpoints.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1EndpointsList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1EnvFromSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1EnvVar.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1EnvVarSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1EphemeralContainer.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1EphemeralVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1EventSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Eviction.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ExecAction.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ExemptPriorityLevelConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ExpressionWarning.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ExternalDocumentation.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1FCVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1FieldSelectorAttributes.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1FieldSelectorRequirement.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1FlexPersistentVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1FlexVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1FlockerVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1FlowDistinguisherMethod.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1FlowSchema.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1FlowSchemaCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1FlowSchemaList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1FlowSchemaSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1FlowSchemaStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ForNode.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ForZone.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1GCEPersistentDiskVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1GRPCAction.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1GitRepoVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1GlusterfsPersistentVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1GlusterfsVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1GroupSubject.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1GroupVersionForDiscovery.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1HTTPGetAction.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1HTTPHeader.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1HTTPIngressPath.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1HTTPIngressRuleValue.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1HorizontalPodAutoscaler.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1HorizontalPodAutoscalerList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1HorizontalPodAutoscalerSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1HorizontalPodAutoscalerStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1HostAlias.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1HostIP.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1HostPathVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1IPAddress.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1IPAddressList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1IPAddressSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1IPBlock.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ISCSIPersistentVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ISCSIVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ImageVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Ingress.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1IngressBackend.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1IngressClass.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1IngressClassList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1IngressClassParametersReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1IngressClassSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1IngressList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1IngressLoadBalancerIngress.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1IngressLoadBalancerStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1IngressPortStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1IngressRule.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1IngressServiceBackend.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1IngressSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1IngressStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1IngressTLS.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1JSONSchemaProps.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Job.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1JobCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1JobList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1JobSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1JobStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1JobTemplateSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1KeyToPath.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1LabelSelector.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1LabelSelectorAttributes.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1LabelSelectorRequirement.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Lease.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1LeaseList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1LeaseSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Lifecycle.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1LifecycleHandler.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1LimitRange.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1LimitRangeItem.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1LimitRangeList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1LimitRangeSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1LimitResponse.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1LimitedPriorityLevelConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1LinuxContainerUser.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ListMeta.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1LoadBalancerIngress.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1LoadBalancerStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1LocalObjectReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1LocalSubjectAccessReview.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1LocalVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ManagedFieldsEntry.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1MatchCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1MatchResources.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ModifyVolumeStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1MutatingWebhook.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1MutatingWebhookConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1MutatingWebhookConfigurationList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NFSVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NamedRuleWithOperations.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Namespace.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NamespaceCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NamespaceList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NamespaceSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NamespaceStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NetworkPolicy.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NetworkPolicyEgressRule.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NetworkPolicyIngressRule.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NetworkPolicyList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NetworkPolicyPeer.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NetworkPolicyPort.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NetworkPolicySpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Node.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NodeAddress.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NodeAffinity.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NodeCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NodeConfigSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NodeConfigStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NodeDaemonEndpoints.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NodeFeatures.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NodeList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NodeRuntimeHandler.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NodeRuntimeHandlerFeatures.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NodeSelector.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NodeSelectorRequirement.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NodeSelectorTerm.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NodeSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NodeStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NodeSwapStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NodeSystemInfo.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NonResourceAttributes.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NonResourcePolicyRule.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1NonResourceRule.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ObjectFieldSelector.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ObjectMeta.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ObjectReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Overhead.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1OwnerReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ParamKind.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ParamRef.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ParentReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PersistentVolume.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PersistentVolumeClaim.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PersistentVolumeClaimCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PersistentVolumeClaimList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PersistentVolumeClaimSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PersistentVolumeClaimStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PersistentVolumeClaimTemplate.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PersistentVolumeClaimVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PersistentVolumeList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PersistentVolumeSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PersistentVolumeStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PhotonPersistentDiskVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Pod.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodAffinity.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodAffinityTerm.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodAntiAffinity.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodDNSConfig.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodDNSConfigOption.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodDisruptionBudget.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodDisruptionBudgetList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodDisruptionBudgetSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodDisruptionBudgetStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodFailurePolicy.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodFailurePolicyOnExitCodesRequirement.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodFailurePolicyOnPodConditionsPattern.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodFailurePolicyRule.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodIP.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodOS.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodReadinessGate.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodResourceClaim.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodResourceClaimStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodSchedulingGate.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodSecurityContext.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodTemplate.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodTemplateList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PodTemplateSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PolicyRule.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PolicyRulesWithSubjects.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PortStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PortworxVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Preconditions.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PreferredSchedulingTerm.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PriorityClass.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PriorityClassList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PriorityLevelConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PriorityLevelConfigurationCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PriorityLevelConfigurationList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PriorityLevelConfigurationReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PriorityLevelConfigurationSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1PriorityLevelConfigurationStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Probe.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ProjectedVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1QueuingConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1QuobyteVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1RBDPersistentVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1RBDVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ReplicaSet.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ReplicaSetCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ReplicaSetList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ReplicaSetSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ReplicaSetStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ReplicationController.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ReplicationControllerCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ReplicationControllerList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ReplicationControllerSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ReplicationControllerStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ResourceAttributes.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ResourceClaim.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ResourceFieldSelector.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ResourceHealth.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ResourcePolicyRule.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ResourceQuota.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ResourceQuotaList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ResourceQuotaSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ResourceQuotaStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ResourceRequirements.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ResourceRule.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ResourceStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Role.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1RoleBinding.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1RoleBindingList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1RoleList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1RoleRef.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1RollingUpdateDaemonSet.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1RollingUpdateDeployment.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1RollingUpdateStatefulSetStrategy.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1RuleWithOperations.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1RuntimeClass.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1RuntimeClassList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SELinuxOptions.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Scale.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ScaleIOPersistentVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ScaleIOVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ScaleSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ScaleStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Scheduling.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ScopeSelector.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ScopedResourceSelectorRequirement.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SeccompProfile.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Secret.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SecretEnvSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SecretKeySelector.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SecretList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SecretProjection.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SecretReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SecretVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SecurityContext.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SelectableField.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SelfSubjectAccessReview.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SelfSubjectAccessReviewSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SelfSubjectReview.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SelfSubjectReviewStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SelfSubjectRulesReview.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SelfSubjectRulesReviewSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ServerAddressByClientCIDR.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Service.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ServiceAccount.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ServiceAccountList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ServiceAccountSubject.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ServiceAccountTokenProjection.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ServiceBackendPort.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ServiceCIDR.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ServiceCIDRList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ServiceCIDRSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ServiceCIDRStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ServiceList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ServicePort.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ServiceSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ServiceStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SessionAffinityConfig.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SleepAction.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1StatefulSet.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1StatefulSetCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1StatefulSetList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1StatefulSetOrdinals.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1StatefulSetPersistentVolumeClaimRetentionPolicy.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1StatefulSetSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1StatefulSetStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1StatefulSetUpdateStrategy.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Status.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1StatusCause.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1StatusDetails.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1StorageClass.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1StorageClassList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1StorageOSPersistentVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1StorageOSVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SubjectAccessReview.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SubjectAccessReviewSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SubjectAccessReviewStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SubjectRulesReviewStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SuccessPolicy.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1SuccessPolicyRule.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Sysctl.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1TCPSocketAction.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Taint.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1TokenRequestSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1TokenRequestStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1TokenReview.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1TokenReviewSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1TokenReviewStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Toleration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1TopologySelectorLabelRequirement.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1TopologySelectorTerm.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1TopologySpreadConstraint.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1TypeChecking.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1TypedLocalObjectReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1TypedObjectReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1UncountedTerminatedPods.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1UserInfo.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1UserSubject.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ValidatingAdmissionPolicy.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ValidatingAdmissionPolicyBinding.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ValidatingAdmissionPolicyBindingList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ValidatingAdmissionPolicyBindingSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ValidatingAdmissionPolicyList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ValidatingAdmissionPolicySpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ValidatingAdmissionPolicyStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ValidatingWebhook.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ValidatingWebhookConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ValidatingWebhookConfigurationList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Validation.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1ValidationRule.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Variable.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1Volume.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1VolumeAttachment.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1VolumeAttachmentList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1VolumeAttachmentSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1VolumeAttachmentSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1VolumeAttachmentStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1VolumeDevice.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1VolumeError.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1VolumeMount.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1VolumeMountStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1VolumeNodeAffinity.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1VolumeNodeResources.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1VolumeProjection.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1VolumeResourceRequirements.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1VsphereVirtualDiskVolumeSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1WatchEvent.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1WebhookConversion.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1WeightedPodAffinityTerm.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1WindowsSecurityContextOptions.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1ApplyConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1ClusterTrustBundle.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1ClusterTrustBundleList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1ClusterTrustBundleSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1GroupVersionResource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1JSONPatch.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1MatchCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1MatchResources.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1MigrationCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1MutatingAdmissionPolicy.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1MutatingAdmissionPolicyBinding.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1MutatingAdmissionPolicyBindingList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1MutatingAdmissionPolicyBindingSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1MutatingAdmissionPolicyList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1MutatingAdmissionPolicySpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1Mutation.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1NamedRuleWithOperations.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1ParamKind.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1ParamRef.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1ServerStorageVersion.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1StorageVersion.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1StorageVersionCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1StorageVersionList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1StorageVersionMigration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1StorageVersionMigrationList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1StorageVersionMigrationSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1StorageVersionMigrationStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1StorageVersionStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1Variable.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1VolumeAttributesClass.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha1VolumeAttributesClassList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha2LeaseCandidate.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha2LeaseCandidateList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha2LeaseCandidateSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3AllocatedDeviceStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3AllocationResult.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3BasicDevice.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3CELDeviceSelector.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3Counter.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3CounterSet.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3Device.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceAllocationConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceAllocationResult.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceAttribute.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceClaim.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceClaimConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceClass.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceClassConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceClassList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceClassSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceConstraint.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceCounterConsumption.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceRequest.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceRequestAllocationResult.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceSelector.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceSubRequest.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceTaint.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceTaintRule.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceTaintRuleList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceTaintRuleSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceTaintSelector.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3DeviceToleration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3NetworkDeviceData.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3OpaqueDeviceConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3ResourceClaim.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3ResourceClaimConsumerReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3ResourceClaimList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3ResourceClaimSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3ResourceClaimStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3ResourceClaimTemplate.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3ResourceClaimTemplateList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3ResourceClaimTemplateSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3ResourcePool.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3ResourceSlice.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3ResourceSliceList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1alpha3ResourceSliceSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1AllocatedDeviceStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1AllocationResult.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1AuditAnnotation.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1BasicDevice.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1CELDeviceSelector.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ClusterTrustBundle.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ClusterTrustBundleList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ClusterTrustBundleSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1Counter.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1CounterSet.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1Device.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1DeviceAllocationConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1DeviceAllocationResult.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1DeviceAttribute.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1DeviceCapacity.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1DeviceClaim.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1DeviceClaimConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1DeviceClass.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1DeviceClassConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1DeviceClassList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1DeviceClassSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1DeviceConstraint.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1DeviceCounterConsumption.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1DeviceRequest.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1DeviceRequestAllocationResult.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1DeviceSelector.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1DeviceSubRequest.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1DeviceTaint.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1DeviceToleration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ExpressionWarning.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1IPAddress.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1IPAddressList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1IPAddressSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1LeaseCandidate.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1LeaseCandidateList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1LeaseCandidateSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1MatchCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1MatchResources.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1NamedRuleWithOperations.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1NetworkDeviceData.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1OpaqueDeviceConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ParamKind.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ParamRef.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ParentReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ResourceClaim.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ResourceClaimConsumerReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ResourceClaimList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ResourceClaimSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ResourceClaimStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ResourceClaimTemplate.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ResourceClaimTemplateList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ResourceClaimTemplateSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ResourcePool.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ResourceSlice.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ResourceSliceList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ResourceSliceSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ServiceCIDR.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ServiceCIDRList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ServiceCIDRSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ServiceCIDRStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1TypeChecking.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ValidatingAdmissionPolicy.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ValidatingAdmissionPolicyBinding.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ValidatingAdmissionPolicyBindingList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ValidatingAdmissionPolicyBindingSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ValidatingAdmissionPolicyList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ValidatingAdmissionPolicySpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1ValidatingAdmissionPolicyStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1Validation.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1Variable.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1VolumeAttributesClass.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta1VolumeAttributesClassList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2AllocatedDeviceStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2AllocationResult.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2CELDeviceSelector.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2Counter.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2CounterSet.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2Device.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2DeviceAllocationConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2DeviceAllocationResult.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2DeviceAttribute.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2DeviceCapacity.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2DeviceClaim.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2DeviceClaimConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2DeviceClass.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2DeviceClassConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2DeviceClassList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2DeviceClassSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2DeviceConstraint.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2DeviceCounterConsumption.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2DeviceRequest.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2DeviceRequestAllocationResult.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2DeviceSelector.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2DeviceSubRequest.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2DeviceTaint.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2DeviceToleration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2ExactDeviceRequest.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2NetworkDeviceData.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2OpaqueDeviceConfiguration.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2ResourceClaim.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2ResourceClaimConsumerReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2ResourceClaimList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2ResourceClaimSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2ResourceClaimStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2ResourceClaimTemplate.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2ResourceClaimTemplateList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2ResourceClaimTemplateSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2ResourcePool.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2ResourceSlice.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2ResourceSliceList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V1beta2ResourceSliceSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2ContainerResourceMetricSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2ContainerResourceMetricStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2CrossVersionObjectReference.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2ExternalMetricSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2ExternalMetricStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2HPAScalingPolicy.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2HPAScalingRules.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2HorizontalPodAutoscaler.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2HorizontalPodAutoscalerBehavior.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2HorizontalPodAutoscalerCondition.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2HorizontalPodAutoscalerList.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2HorizontalPodAutoscalerSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2HorizontalPodAutoscalerStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2MetricIdentifier.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2MetricSpec.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2MetricStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2MetricTarget.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2MetricValueStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2ObjectMetricSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2ObjectMetricStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2PodsMetricSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2PodsMetricStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2ResourceMetricSource.js","../node_modules/@kubernetes/client-node/dist/gen/models/V2ResourceMetricStatus.js","../node_modules/@kubernetes/client-node/dist/gen/models/VersionInfo.js","../node_modules/@kubernetes/client-node/dist/gen/middleware.js","../node_modules/@kubernetes/client-node/dist/gen/servers.js","../node_modules/@kubernetes/client-node/dist/gen/configuration.js","../node_modules/@kubernetes/client-node/dist/gen/apis/exception.js","../node_modules/@kubernetes/client-node/dist/gen/apis/baseapi.js","../node_modules/@kubernetes/client-node/dist/gen/models/ObjectSerializer.js","../node_modules/@kubernetes/client-node/dist/gen/util.js","../node_modules/@kubernetes/client-node/dist/gen/apis/AppsV1Api.js","../node_modules/@kubernetes/client-node/dist/gen/types/ObservableAPI.js","../node_modules/@kubernetes/client-node/dist/gen/types/ObjectParamAPI.js","../node_modules/oauth4webapi/build/index.js","../node_modules/openid-client/build/index.js","../node_modules/rfc4648/lib/rfc4648.js","../node_modules/@kubernetes/client-node/dist/oidc_auth.js","../node_modules/smart-buffer/build/utils.js","../node_modules/smart-buffer/build/smartbuffer.js","../node_modules/socks/build/common/constants.js","../node_modules/socks/build/common/util.js","../node_modules/ip-address/dist/common.js","../node_modules/ip-address/dist/v4/constants.js","../node_modules/ip-address/dist/address-error.js","../node_modules/jsbn/index.js","../node_modules/ip-address/node_modules/sprintf-js/src/sprintf.js","../node_modules/ip-address/dist/ipv4.js","../node_modules/ip-address/dist/v6/constants.js","../node_modules/ip-address/dist/v6/helpers.js","../node_modules/ip-address/dist/v6/regular-expressions.js","../node_modules/ip-address/dist/ipv6.js","../node_modules/ip-address/dist/ip-address.js","../node_modules/socks/build/common/helpers.js","../node_modules/socks/build/common/receivebuffer.js","../node_modules/socks/build/client/socksclient.js","../node_modules/socks/build/index.js","../node_modules/agent-base/dist/helpers.js","../node_modules/agent-base/dist/index.js","../node_modules/ms/index.js","../node_modules/debug/src/common.js","../node_modules/debug/src/browser.js","../node_modules/has-flag/index.js","../node_modules/supports-color/index.js","../node_modules/debug/src/node.js","../node_modules/debug/src/index.js","../node_modules/socks-proxy-agent/dist/index.js","../node_modules/hpagent/index.js","../node_modules/hpagent/index.mjs","../node_modules/@kubernetes/client-node/dist/config.js","../node_modules/@kubernetes/client-node/dist/serializer.js","../node_modules/ws/lib/constants.js","../node_modules/ws/lib/buffer-util.js","../node_modules/ws/lib/limiter.js","../node_modules/ws/lib/permessage-deflate.js","../node_modules/ws/lib/validation.js","../node_modules/ws/lib/receiver.js","../node_modules/ws/lib/sender.js","../node_modules/ws/lib/event-target.js","../node_modules/ws/lib/extension.js","../node_modules/ws/lib/websocket.js","../node_modules/ws/lib/stream.js","../node_modules/ws/lib/subprotocol.js","../node_modules/ws/lib/websocket-server.js","../node_modules/ws/index.js","../node_modules/isomorphic-ws/node.js","../node_modules/stream-buffers/lib/constants.js","../node_modules/stream-buffers/lib/readable_streambuffer.js","../node_modules/stream-buffers/lib/writable_streambuffer.js","../node_modules/stream-buffers/lib/streambuffer.js","../node_modules/fast-fifo/fixed-size.js","../node_modules/fast-fifo/index.js","../node_modules/b4a/index.js","../node_modules/text-decoder/lib/pass-through-decoder.js","../node_modules/text-decoder/lib/utf8-decoder.js","../node_modules/text-decoder/index.js","../node_modules/streamx/index.js","../node_modules/tar-stream/headers.js","../node_modules/tar-stream/extract.js","../node_modules/tar-stream/constants.js","../node_modules/tar-stream/pack.js","../node_modules/tar-stream/index.js","../node_modules/wrappy/wrappy.js","../node_modules/once/once.js","../node_modules/end-of-stream/index.js","../node_modules/pump/index.js","../node_modules/tar-fs/index.js","../node_modules/@kubernetes/client-node/dist/patch.js","../node_modules/@kubernetes/client-node/dist/object.js","../node_modules/lodash/lodash.js","../src/main.ts","../src/index.ts"],"sourcesContent":["\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return (0, utils_1.toCommandValue)(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return (0, utils_1.toCommandValue)(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareKeyValueMessage = exports.issueFileCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst crypto = __importStar(require(\"crypto\"));\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\nfunction issueFileCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${(0, utils_1.toCommandValue)(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueFileCommand = issueFileCommand;\nfunction prepareKeyValueMessage(key, value) {\n const delimiter = `ghadelimiter_${crypto.randomUUID()}`;\n const convertedValue = (0, utils_1.toCommandValue)(value);\n // These should realistically never happen, but just in case someone finds a\n // way to exploit uuid generation let's not allow keys or values that contain\n // the delimiter.\n if (key.includes(delimiter)) {\n throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n }\n if (convertedValue.includes(delimiter)) {\n throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n }\n return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`;\n}\nexports.prepareKeyValueMessage = prepareKeyValueMessage;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n try {\n return new DecodedURL(proxyVar);\n }\n catch (_a) {\n if (!proxyVar.startsWith('http://') && !proxyVar.startsWith('https://'))\n return new DecodedURL(`http://${proxyVar}`);\n }\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const reqHost = reqUrl.hostname;\n if (isLoopbackAddress(reqHost)) {\n return true;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperNoProxyItem === '*' ||\n upperReqHosts.some(x => x === upperNoProxyItem ||\n x.endsWith(`.${upperNoProxyItem}`) ||\n (upperNoProxyItem.startsWith('.') &&\n x.endsWith(`${upperNoProxyItem}`)))) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\nfunction isLoopbackAddress(host) {\n const hostLower = host.toLowerCase();\n return (hostLower === 'localhost' ||\n hostLower.startsWith('127.') ||\n hostLower.startsWith('[::1]') ||\n hostLower.startsWith('[0:0:0:0:0:0:0:1]'));\n}\nclass DecodedURL extends URL {\n constructor(url, base) {\n super(url, base);\n this._decodedUsername = decodeURIComponent(super.username);\n this._decodedPassword = decodeURIComponent(super.password);\n }\n get username() {\n return this._decodedUsername;\n }\n get password() {\n return this._decodedPassword;\n }\n}\n//# sourceMappingURL=proxy.js.map","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","module.exports = require('./lib/tunnel');\n","module.exports = {\n kClose: Symbol('close'),\n kDestroy: Symbol('destroy'),\n kDispatch: Symbol('dispatch'),\n kUrl: Symbol('url'),\n kWriting: Symbol('writing'),\n kResuming: Symbol('resuming'),\n kQueue: Symbol('queue'),\n kConnect: Symbol('connect'),\n kConnecting: Symbol('connecting'),\n kHeadersList: Symbol('headers list'),\n kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'),\n kKeepAliveMaxTimeout: Symbol('max keep alive timeout'),\n kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'),\n kKeepAliveTimeoutValue: Symbol('keep alive timeout'),\n kKeepAlive: Symbol('keep alive'),\n kHeadersTimeout: Symbol('headers timeout'),\n kBodyTimeout: Symbol('body timeout'),\n kServerName: Symbol('server name'),\n kLocalAddress: Symbol('local address'),\n kHost: Symbol('host'),\n kNoRef: Symbol('no ref'),\n kBodyUsed: Symbol('used'),\n kRunning: Symbol('running'),\n kBlocking: Symbol('blocking'),\n kPending: Symbol('pending'),\n kSize: Symbol('size'),\n kBusy: Symbol('busy'),\n kQueued: Symbol('queued'),\n kFree: Symbol('free'),\n kConnected: Symbol('connected'),\n kClosed: Symbol('closed'),\n kNeedDrain: Symbol('need drain'),\n kReset: Symbol('reset'),\n kDestroyed: Symbol.for('nodejs.stream.destroyed'),\n kMaxHeadersSize: Symbol('max headers size'),\n kRunningIdx: Symbol('running index'),\n kPendingIdx: Symbol('pending index'),\n kError: Symbol('error'),\n kClients: Symbol('clients'),\n kClient: Symbol('client'),\n kParser: Symbol('parser'),\n kOnDestroyed: Symbol('destroy callbacks'),\n kPipelining: Symbol('pipelining'),\n kSocket: Symbol('socket'),\n kHostHeader: Symbol('host header'),\n kConnector: Symbol('connector'),\n kStrictContentLength: Symbol('strict content length'),\n kMaxRedirections: Symbol('maxRedirections'),\n kMaxRequests: Symbol('maxRequestsPerClient'),\n kProxy: Symbol('proxy agent options'),\n kCounter: Symbol('socket request counter'),\n kInterceptors: Symbol('dispatch interceptors'),\n kMaxResponseSize: Symbol('max response size'),\n kHTTP2Session: Symbol('http2Session'),\n kHTTP2SessionState: Symbol('http2Session state'),\n kHTTP2BuildRequest: Symbol('http2 build request'),\n kHTTP1BuildRequest: Symbol('http1 build request'),\n kHTTP2CopyHeaders: Symbol('http2 copy headers'),\n kHTTPConnVersion: Symbol('http connection version'),\n kRetryHandlerDefaultRetry: Symbol('retry agent default retry'),\n kConstruct: Symbol('constructable')\n}\n","'use strict'\n\nclass UndiciError extends Error {\n constructor (message) {\n super(message)\n this.name = 'UndiciError'\n this.code = 'UND_ERR'\n }\n}\n\nclass ConnectTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ConnectTimeoutError)\n this.name = 'ConnectTimeoutError'\n this.message = message || 'Connect Timeout Error'\n this.code = 'UND_ERR_CONNECT_TIMEOUT'\n }\n}\n\nclass HeadersTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersTimeoutError)\n this.name = 'HeadersTimeoutError'\n this.message = message || 'Headers Timeout Error'\n this.code = 'UND_ERR_HEADERS_TIMEOUT'\n }\n}\n\nclass HeadersOverflowError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersOverflowError)\n this.name = 'HeadersOverflowError'\n this.message = message || 'Headers Overflow Error'\n this.code = 'UND_ERR_HEADERS_OVERFLOW'\n }\n}\n\nclass BodyTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, BodyTimeoutError)\n this.name = 'BodyTimeoutError'\n this.message = message || 'Body Timeout Error'\n this.code = 'UND_ERR_BODY_TIMEOUT'\n }\n}\n\nclass ResponseStatusCodeError extends UndiciError {\n constructor (message, statusCode, headers, body) {\n super(message)\n Error.captureStackTrace(this, ResponseStatusCodeError)\n this.name = 'ResponseStatusCodeError'\n this.message = message || 'Response Status Code Error'\n this.code = 'UND_ERR_RESPONSE_STATUS_CODE'\n this.body = body\n this.status = statusCode\n this.statusCode = statusCode\n this.headers = headers\n }\n}\n\nclass InvalidArgumentError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidArgumentError)\n this.name = 'InvalidArgumentError'\n this.message = message || 'Invalid Argument Error'\n this.code = 'UND_ERR_INVALID_ARG'\n }\n}\n\nclass InvalidReturnValueError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidReturnValueError)\n this.name = 'InvalidReturnValueError'\n this.message = message || 'Invalid Return Value Error'\n this.code = 'UND_ERR_INVALID_RETURN_VALUE'\n }\n}\n\nclass RequestAbortedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestAbortedError)\n this.name = 'AbortError'\n this.message = message || 'Request aborted'\n this.code = 'UND_ERR_ABORTED'\n }\n}\n\nclass InformationalError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InformationalError)\n this.name = 'InformationalError'\n this.message = message || 'Request information'\n this.code = 'UND_ERR_INFO'\n }\n}\n\nclass RequestContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestContentLengthMismatchError)\n this.name = 'RequestContentLengthMismatchError'\n this.message = message || 'Request body length does not match content-length header'\n this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ResponseContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseContentLengthMismatchError)\n this.name = 'ResponseContentLengthMismatchError'\n this.message = message || 'Response body length does not match content-length header'\n this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ClientDestroyedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientDestroyedError)\n this.name = 'ClientDestroyedError'\n this.message = message || 'The client is destroyed'\n this.code = 'UND_ERR_DESTROYED'\n }\n}\n\nclass ClientClosedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientClosedError)\n this.name = 'ClientClosedError'\n this.message = message || 'The client is closed'\n this.code = 'UND_ERR_CLOSED'\n }\n}\n\nclass SocketError extends UndiciError {\n constructor (message, socket) {\n super(message)\n Error.captureStackTrace(this, SocketError)\n this.name = 'SocketError'\n this.message = message || 'Socket error'\n this.code = 'UND_ERR_SOCKET'\n this.socket = socket\n }\n}\n\nclass NotSupportedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'NotSupportedError'\n this.message = message || 'Not supported error'\n this.code = 'UND_ERR_NOT_SUPPORTED'\n }\n}\n\nclass BalancedPoolMissingUpstreamError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'MissingUpstreamError'\n this.message = message || 'No upstream has been added to the BalancedPool'\n this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'\n }\n}\n\nclass HTTPParserError extends Error {\n constructor (message, code, data) {\n super(message)\n Error.captureStackTrace(this, HTTPParserError)\n this.name = 'HTTPParserError'\n this.code = code ? `HPE_${code}` : undefined\n this.data = data ? data.toString() : undefined\n }\n}\n\nclass ResponseExceededMaxSizeError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseExceededMaxSizeError)\n this.name = 'ResponseExceededMaxSizeError'\n this.message = message || 'Response content exceeded max size'\n this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'\n }\n}\n\nclass RequestRetryError extends UndiciError {\n constructor (message, code, { headers, data }) {\n super(message)\n Error.captureStackTrace(this, RequestRetryError)\n this.name = 'RequestRetryError'\n this.message = message || 'Request retry error'\n this.code = 'UND_ERR_REQ_RETRY'\n this.statusCode = code\n this.data = data\n this.headers = headers\n }\n}\n\nmodule.exports = {\n HTTPParserError,\n UndiciError,\n HeadersTimeoutError,\n HeadersOverflowError,\n BodyTimeoutError,\n RequestContentLengthMismatchError,\n ConnectTimeoutError,\n ResponseStatusCodeError,\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError,\n ClientDestroyedError,\n ClientClosedError,\n InformationalError,\n SocketError,\n NotSupportedError,\n ResponseContentLengthMismatchError,\n BalancedPoolMissingUpstreamError,\n ResponseExceededMaxSizeError,\n RequestRetryError\n}\n","'use strict'\n\n/** @type {Record} */\nconst headerNameLowerCasedRecord = {}\n\n// https://developer.mozilla.org/docs/Web/HTTP/Headers\nconst wellknownHeaderNames = [\n 'Accept',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Ranges',\n 'Access-Control-Allow-Credentials',\n 'Access-Control-Allow-Headers',\n 'Access-Control-Allow-Methods',\n 'Access-Control-Allow-Origin',\n 'Access-Control-Expose-Headers',\n 'Access-Control-Max-Age',\n 'Access-Control-Request-Headers',\n 'Access-Control-Request-Method',\n 'Age',\n 'Allow',\n 'Alt-Svc',\n 'Alt-Used',\n 'Authorization',\n 'Cache-Control',\n 'Clear-Site-Data',\n 'Connection',\n 'Content-Disposition',\n 'Content-Encoding',\n 'Content-Language',\n 'Content-Length',\n 'Content-Location',\n 'Content-Range',\n 'Content-Security-Policy',\n 'Content-Security-Policy-Report-Only',\n 'Content-Type',\n 'Cookie',\n 'Cross-Origin-Embedder-Policy',\n 'Cross-Origin-Opener-Policy',\n 'Cross-Origin-Resource-Policy',\n 'Date',\n 'Device-Memory',\n 'Downlink',\n 'ECT',\n 'ETag',\n 'Expect',\n 'Expect-CT',\n 'Expires',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Keep-Alive',\n 'Last-Modified',\n 'Link',\n 'Location',\n 'Max-Forwards',\n 'Origin',\n 'Permissions-Policy',\n 'Pragma',\n 'Proxy-Authenticate',\n 'Proxy-Authorization',\n 'RTT',\n 'Range',\n 'Referer',\n 'Referrer-Policy',\n 'Refresh',\n 'Retry-After',\n 'Sec-WebSocket-Accept',\n 'Sec-WebSocket-Extensions',\n 'Sec-WebSocket-Key',\n 'Sec-WebSocket-Protocol',\n 'Sec-WebSocket-Version',\n 'Server',\n 'Server-Timing',\n 'Service-Worker-Allowed',\n 'Service-Worker-Navigation-Preload',\n 'Set-Cookie',\n 'SourceMap',\n 'Strict-Transport-Security',\n 'Supports-Loading-Mode',\n 'TE',\n 'Timing-Allow-Origin',\n 'Trailer',\n 'Transfer-Encoding',\n 'Upgrade',\n 'Upgrade-Insecure-Requests',\n 'User-Agent',\n 'Vary',\n 'Via',\n 'WWW-Authenticate',\n 'X-Content-Type-Options',\n 'X-DNS-Prefetch-Control',\n 'X-Frame-Options',\n 'X-Permitted-Cross-Domain-Policies',\n 'X-Powered-By',\n 'X-Requested-With',\n 'X-XSS-Protection'\n]\n\nfor (let i = 0; i < wellknownHeaderNames.length; ++i) {\n const key = wellknownHeaderNames[i]\n const lowerCasedKey = key.toLowerCase()\n headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] =\n lowerCasedKey\n}\n\n// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`.\nObject.setPrototypeOf(headerNameLowerCasedRecord, null)\n\nmodule.exports = {\n wellknownHeaderNames,\n headerNameLowerCasedRecord\n}\n","'use strict'\n\nconst assert = require('assert')\nconst { kDestroyed, kBodyUsed } = require('./symbols')\nconst { IncomingMessage } = require('http')\nconst stream = require('stream')\nconst net = require('net')\nconst { InvalidArgumentError } = require('./errors')\nconst { Blob } = require('buffer')\nconst nodeUtil = require('util')\nconst { stringify } = require('querystring')\nconst { headerNameLowerCasedRecord } = require('./constants')\n\nconst [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v))\n\nfunction nop () {}\n\nfunction isStream (obj) {\n return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function'\n}\n\n// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)\nfunction isBlobLike (object) {\n return (Blob && object instanceof Blob) || (\n object &&\n typeof object === 'object' &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n}\n\nfunction buildURL (url, queryParams) {\n if (url.includes('?') || url.includes('#')) {\n throw new Error('Query params cannot be passed when url already contains \"?\" or \"#\".')\n }\n\n const stringified = stringify(queryParams)\n\n if (stringified) {\n url += '?' + stringified\n }\n\n return url\n}\n\nfunction parseURL (url) {\n if (typeof url === 'string') {\n url = new URL(url)\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n return url\n }\n\n if (!url || typeof url !== 'object') {\n throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.')\n }\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n if (!(url instanceof URL)) {\n if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) {\n throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.')\n }\n\n if (url.path != null && typeof url.path !== 'string') {\n throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.')\n }\n\n if (url.pathname != null && typeof url.pathname !== 'string') {\n throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.')\n }\n\n if (url.hostname != null && typeof url.hostname !== 'string') {\n throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.')\n }\n\n if (url.origin != null && typeof url.origin !== 'string') {\n throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.')\n }\n\n const port = url.port != null\n ? url.port\n : (url.protocol === 'https:' ? 443 : 80)\n let origin = url.origin != null\n ? url.origin\n : `${url.protocol}//${url.hostname}:${port}`\n let path = url.path != null\n ? url.path\n : `${url.pathname || ''}${url.search || ''}`\n\n if (origin.endsWith('/')) {\n origin = origin.substring(0, origin.length - 1)\n }\n\n if (path && !path.startsWith('/')) {\n path = `/${path}`\n }\n // new URL(path, origin) is unsafe when `path` contains an absolute URL\n // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL:\n // If first parameter is a relative URL, second param is required, and will be used as the base URL.\n // If first parameter is an absolute URL, a given second param will be ignored.\n url = new URL(origin + path)\n }\n\n return url\n}\n\nfunction parseOrigin (url) {\n url = parseURL(url)\n\n if (url.pathname !== '/' || url.search || url.hash) {\n throw new InvalidArgumentError('invalid url')\n }\n\n return url\n}\n\nfunction getHostname (host) {\n if (host[0] === '[') {\n const idx = host.indexOf(']')\n\n assert(idx !== -1)\n return host.substring(1, idx)\n }\n\n const idx = host.indexOf(':')\n if (idx === -1) return host\n\n return host.substring(0, idx)\n}\n\n// IP addresses are not valid server names per RFC6066\n// > Currently, the only server names supported are DNS hostnames\nfunction getServerName (host) {\n if (!host) {\n return null\n }\n\n assert.strictEqual(typeof host, 'string')\n\n const servername = getHostname(host)\n if (net.isIP(servername)) {\n return ''\n }\n\n return servername\n}\n\nfunction deepClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction isAsyncIterable (obj) {\n return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function')\n}\n\nfunction isIterable (obj) {\n return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function'))\n}\n\nfunction bodyLength (body) {\n if (body == null) {\n return 0\n } else if (isStream(body)) {\n const state = body._readableState\n return state && state.objectMode === false && state.ended === true && Number.isFinite(state.length)\n ? state.length\n : null\n } else if (isBlobLike(body)) {\n return body.size != null ? body.size : null\n } else if (isBuffer(body)) {\n return body.byteLength\n }\n\n return null\n}\n\nfunction isDestroyed (stream) {\n return !stream || !!(stream.destroyed || stream[kDestroyed])\n}\n\nfunction isReadableAborted (stream) {\n const state = stream && stream._readableState\n return isDestroyed(stream) && state && !state.endEmitted\n}\n\nfunction destroy (stream, err) {\n if (stream == null || !isStream(stream) || isDestroyed(stream)) {\n return\n }\n\n if (typeof stream.destroy === 'function') {\n if (Object.getPrototypeOf(stream).constructor === IncomingMessage) {\n // See: https://github.com/nodejs/node/pull/38505/files\n stream.socket = null\n }\n\n stream.destroy(err)\n } else if (err) {\n process.nextTick((stream, err) => {\n stream.emit('error', err)\n }, stream, err)\n }\n\n if (stream.destroyed !== true) {\n stream[kDestroyed] = true\n }\n}\n\nconst KEEPALIVE_TIMEOUT_EXPR = /timeout=(\\d+)/\nfunction parseKeepAliveTimeout (val) {\n const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR)\n return m ? parseInt(m[1], 10) * 1000 : null\n}\n\n/**\n * Retrieves a header name and returns its lowercase value.\n * @param {string | Buffer} value Header name\n * @returns {string}\n */\nfunction headerNameToString (value) {\n return headerNameLowerCasedRecord[value] || value.toLowerCase()\n}\n\nfunction parseHeaders (headers, obj = {}) {\n // For H2 support\n if (!Array.isArray(headers)) return headers\n\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i].toString().toLowerCase()\n let val = obj[key]\n\n if (!val) {\n if (Array.isArray(headers[i + 1])) {\n obj[key] = headers[i + 1].map(x => x.toString('utf8'))\n } else {\n obj[key] = headers[i + 1].toString('utf8')\n }\n } else {\n if (!Array.isArray(val)) {\n val = [val]\n obj[key] = val\n }\n val.push(headers[i + 1].toString('utf8'))\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if ('content-length' in obj && 'content-disposition' in obj) {\n obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1')\n }\n\n return obj\n}\n\nfunction parseRawHeaders (headers) {\n const ret = []\n let hasContentLength = false\n let contentDispositionIdx = -1\n\n for (let n = 0; n < headers.length; n += 2) {\n const key = headers[n + 0].toString()\n const val = headers[n + 1].toString('utf8')\n\n if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) {\n ret.push(key, val)\n hasContentLength = true\n } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) {\n contentDispositionIdx = ret.push(key, val) - 1\n } else {\n ret.push(key, val)\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if (hasContentLength && contentDispositionIdx !== -1) {\n ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1')\n }\n\n return ret\n}\n\nfunction isBuffer (buffer) {\n // See, https://github.com/mcollina/undici/pull/319\n return buffer instanceof Uint8Array || Buffer.isBuffer(buffer)\n}\n\nfunction validateHandler (handler, method, upgrade) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n if (typeof handler.onConnect !== 'function') {\n throw new InvalidArgumentError('invalid onConnect method')\n }\n\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {\n throw new InvalidArgumentError('invalid onBodySent method')\n }\n\n if (upgrade || method === 'CONNECT') {\n if (typeof handler.onUpgrade !== 'function') {\n throw new InvalidArgumentError('invalid onUpgrade method')\n }\n } else {\n if (typeof handler.onHeaders !== 'function') {\n throw new InvalidArgumentError('invalid onHeaders method')\n }\n\n if (typeof handler.onData !== 'function') {\n throw new InvalidArgumentError('invalid onData method')\n }\n\n if (typeof handler.onComplete !== 'function') {\n throw new InvalidArgumentError('invalid onComplete method')\n }\n }\n}\n\n// A body is disturbed if it has been read from and it cannot\n// be re-used without losing state or data.\nfunction isDisturbed (body) {\n return !!(body && (\n stream.isDisturbed\n ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed?\n : body[kBodyUsed] ||\n body.readableDidRead ||\n (body._readableState && body._readableState.dataEmitted) ||\n isReadableAborted(body)\n ))\n}\n\nfunction isErrored (body) {\n return !!(body && (\n stream.isErrored\n ? stream.isErrored(body)\n : /state: 'errored'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction isReadable (body) {\n return !!(body && (\n stream.isReadable\n ? stream.isReadable(body)\n : /state: 'readable'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction getSocketInfo (socket) {\n return {\n localAddress: socket.localAddress,\n localPort: socket.localPort,\n remoteAddress: socket.remoteAddress,\n remotePort: socket.remotePort,\n remoteFamily: socket.remoteFamily,\n timeout: socket.timeout,\n bytesWritten: socket.bytesWritten,\n bytesRead: socket.bytesRead\n }\n}\n\nasync function * convertIterableToBuffer (iterable) {\n for await (const chunk of iterable) {\n yield Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)\n }\n}\n\nlet ReadableStream\nfunction ReadableStreamFrom (iterable) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n if (ReadableStream.from) {\n return ReadableStream.from(convertIterableToBuffer(iterable))\n }\n\n let iterator\n return new ReadableStream(\n {\n async start () {\n iterator = iterable[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { done, value } = await iterator.next()\n if (done) {\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n const buf = Buffer.isBuffer(value) ? value : Buffer.from(value)\n controller.enqueue(new Uint8Array(buf))\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n },\n 0\n )\n}\n\n// The chunk should be a FormData instance and contains\n// all the required methods.\nfunction isFormDataLike (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.append === 'function' &&\n typeof object.delete === 'function' &&\n typeof object.get === 'function' &&\n typeof object.getAll === 'function' &&\n typeof object.has === 'function' &&\n typeof object.set === 'function' &&\n object[Symbol.toStringTag] === 'FormData'\n )\n}\n\nfunction throwIfAborted (signal) {\n if (!signal) { return }\n if (typeof signal.throwIfAborted === 'function') {\n signal.throwIfAborted()\n } else {\n if (signal.aborted) {\n // DOMException not available < v17.0.0\n const err = new Error('The operation was aborted')\n err.name = 'AbortError'\n throw err\n }\n }\n}\n\nfunction addAbortListener (signal, listener) {\n if ('addEventListener' in signal) {\n signal.addEventListener('abort', listener, { once: true })\n return () => signal.removeEventListener('abort', listener)\n }\n signal.addListener('abort', listener)\n return () => signal.removeListener('abort', listener)\n}\n\nconst hasToWellFormed = !!String.prototype.toWellFormed\n\n/**\n * @param {string} val\n */\nfunction toUSVString (val) {\n if (hasToWellFormed) {\n return `${val}`.toWellFormed()\n } else if (nodeUtil.toUSVString) {\n return nodeUtil.toUSVString(val)\n }\n\n return `${val}`\n}\n\n// Parsed accordingly to RFC 9110\n// https://www.rfc-editor.org/rfc/rfc9110#field.content-range\nfunction parseRangeHeader (range) {\n if (range == null || range === '') return { start: 0, end: null, size: null }\n\n const m = range ? range.match(/^bytes (\\d+)-(\\d+)\\/(\\d+)?$/) : null\n return m\n ? {\n start: parseInt(m[1]),\n end: m[2] ? parseInt(m[2]) : null,\n size: m[3] ? parseInt(m[3]) : null\n }\n : null\n}\n\nconst kEnumerableProperty = Object.create(null)\nkEnumerableProperty.enumerable = true\n\nmodule.exports = {\n kEnumerableProperty,\n nop,\n isDisturbed,\n isErrored,\n isReadable,\n toUSVString,\n isReadableAborted,\n isBlobLike,\n parseOrigin,\n parseURL,\n getServerName,\n isStream,\n isIterable,\n isAsyncIterable,\n isDestroyed,\n headerNameToString,\n parseRawHeaders,\n parseHeaders,\n parseKeepAliveTimeout,\n destroy,\n bodyLength,\n deepClone,\n ReadableStreamFrom,\n isBuffer,\n validateHandler,\n getSocketInfo,\n isFormDataLike,\n buildURL,\n throwIfAborted,\n addAbortListener,\n parseRangeHeader,\n nodeMajor,\n nodeMinor,\n nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13),\n safeHTTPMethods: ['GET', 'HEAD', 'OPTIONS', 'TRACE']\n}\n","'use strict'\n\nlet fastNow = Date.now()\nlet fastNowTimeout\n\nconst fastTimers = []\n\nfunction onTimeout () {\n fastNow = Date.now()\n\n let len = fastTimers.length\n let idx = 0\n while (idx < len) {\n const timer = fastTimers[idx]\n\n if (timer.state === 0) {\n timer.state = fastNow + timer.delay\n } else if (timer.state > 0 && fastNow >= timer.state) {\n timer.state = -1\n timer.callback(timer.opaque)\n }\n\n if (timer.state === -1) {\n timer.state = -2\n if (idx !== len - 1) {\n fastTimers[idx] = fastTimers.pop()\n } else {\n fastTimers.pop()\n }\n len -= 1\n } else {\n idx += 1\n }\n }\n\n if (fastTimers.length > 0) {\n refreshTimeout()\n }\n}\n\nfunction refreshTimeout () {\n if (fastNowTimeout && fastNowTimeout.refresh) {\n fastNowTimeout.refresh()\n } else {\n clearTimeout(fastNowTimeout)\n fastNowTimeout = setTimeout(onTimeout, 1e3)\n if (fastNowTimeout.unref) {\n fastNowTimeout.unref()\n }\n }\n}\n\nclass Timeout {\n constructor (callback, delay, opaque) {\n this.callback = callback\n this.delay = delay\n this.opaque = opaque\n\n // -2 not in timer list\n // -1 in timer list but inactive\n // 0 in timer list waiting for time\n // > 0 in timer list waiting for time to expire\n this.state = -2\n\n this.refresh()\n }\n\n refresh () {\n if (this.state === -2) {\n fastTimers.push(this)\n if (!fastNowTimeout || fastTimers.length === 1) {\n refreshTimeout()\n }\n }\n\n this.state = 0\n }\n\n clear () {\n this.state = -1\n }\n}\n\nmodule.exports = {\n setTimeout (callback, delay, opaque) {\n return delay < 1e3\n ? setTimeout(callback, delay, opaque)\n : new Timeout(callback, delay, opaque)\n },\n clearTimeout (timeout) {\n if (timeout instanceof Timeout) {\n timeout.clear()\n } else {\n clearTimeout(timeout)\n }\n }\n}\n","'use strict'\n\n/**\n * Copyright Brian White. All rights reserved.\n *\n * @see https://github.com/mscdex/streamsearch\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation\n * by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool\n */\nconst EventEmitter = require('node:events').EventEmitter\nconst inherits = require('node:util').inherits\n\nfunction SBMH (needle) {\n if (typeof needle === 'string') {\n needle = Buffer.from(needle)\n }\n\n if (!Buffer.isBuffer(needle)) {\n throw new TypeError('The needle has to be a String or a Buffer.')\n }\n\n const needleLength = needle.length\n\n if (needleLength === 0) {\n throw new Error('The needle cannot be an empty String/Buffer.')\n }\n\n if (needleLength > 256) {\n throw new Error('The needle cannot have a length bigger than 256.')\n }\n\n this.maxMatches = Infinity\n this.matches = 0\n\n this._occ = new Array(256)\n .fill(needleLength) // Initialize occurrence table.\n this._lookbehind_size = 0\n this._needle = needle\n this._bufpos = 0\n\n this._lookbehind = Buffer.alloc(needleLength)\n\n // Populate occurrence table with analysis of the needle,\n // ignoring last letter.\n for (var i = 0; i < needleLength - 1; ++i) { // eslint-disable-line no-var\n this._occ[needle[i]] = needleLength - 1 - i\n }\n}\ninherits(SBMH, EventEmitter)\n\nSBMH.prototype.reset = function () {\n this._lookbehind_size = 0\n this.matches = 0\n this._bufpos = 0\n}\n\nSBMH.prototype.push = function (chunk, pos) {\n if (!Buffer.isBuffer(chunk)) {\n chunk = Buffer.from(chunk, 'binary')\n }\n const chlen = chunk.length\n this._bufpos = pos || 0\n let r\n while (r !== chlen && this.matches < this.maxMatches) { r = this._sbmh_feed(chunk) }\n return r\n}\n\nSBMH.prototype._sbmh_feed = function (data) {\n const len = data.length\n const needle = this._needle\n const needleLength = needle.length\n const lastNeedleChar = needle[needleLength - 1]\n\n // Positive: points to a position in `data`\n // pos == 3 points to data[3]\n // Negative: points to a position in the lookbehind buffer\n // pos == -2 points to lookbehind[lookbehind_size - 2]\n let pos = -this._lookbehind_size\n let ch\n\n if (pos < 0) {\n // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool\n // search with character lookup code that considers both the\n // lookbehind buffer and the current round's haystack data.\n //\n // Loop until\n // there is a match.\n // or until\n // we've moved past the position that requires the\n // lookbehind buffer. In this case we switch to the\n // optimized loop.\n // or until\n // the character to look at lies outside the haystack.\n while (pos < 0 && pos <= len - needleLength) {\n ch = this._sbmh_lookup_char(data, pos + needleLength - 1)\n\n if (\n ch === lastNeedleChar &&\n this._sbmh_memcmp(data, pos, needleLength - 1)\n ) {\n this._lookbehind_size = 0\n ++this.matches\n this.emit('info', true)\n\n return (this._bufpos = pos + needleLength)\n }\n pos += this._occ[ch]\n }\n\n // No match.\n\n if (pos < 0) {\n // There's too few data for Boyer-Moore-Horspool to run,\n // so let's use a different algorithm to skip as much as\n // we can.\n // Forward pos until\n // the trailing part of lookbehind + data\n // looks like the beginning of the needle\n // or until\n // pos == 0\n while (pos < 0 && !this._sbmh_memcmp(data, pos, len - pos)) { ++pos }\n }\n\n if (pos >= 0) {\n // Discard lookbehind buffer.\n this.emit('info', false, this._lookbehind, 0, this._lookbehind_size)\n this._lookbehind_size = 0\n } else {\n // Cut off part of the lookbehind buffer that has\n // been processed and append the entire haystack\n // into it.\n const bytesToCutOff = this._lookbehind_size + pos\n if (bytesToCutOff > 0) {\n // The cut off data is guaranteed not to contain the needle.\n this.emit('info', false, this._lookbehind, 0, bytesToCutOff)\n }\n\n this._lookbehind.copy(this._lookbehind, 0, bytesToCutOff,\n this._lookbehind_size - bytesToCutOff)\n this._lookbehind_size -= bytesToCutOff\n\n data.copy(this._lookbehind, this._lookbehind_size)\n this._lookbehind_size += len\n\n this._bufpos = len\n return len\n }\n }\n\n pos += (pos >= 0) * this._bufpos\n\n // Lookbehind buffer is now empty. We only need to check if the\n // needle is in the haystack.\n if (data.indexOf(needle, pos) !== -1) {\n pos = data.indexOf(needle, pos)\n ++this.matches\n if (pos > 0) { this.emit('info', true, data, this._bufpos, pos) } else { this.emit('info', true) }\n\n return (this._bufpos = pos + needleLength)\n } else {\n pos = len - needleLength\n }\n\n // There was no match. If there's trailing haystack data that we cannot\n // match yet using the Boyer-Moore-Horspool algorithm (because the trailing\n // data is less than the needle size) then match using a modified\n // algorithm that starts matching from the beginning instead of the end.\n // Whatever trailing data is left after running this algorithm is added to\n // the lookbehind buffer.\n while (\n pos < len &&\n (\n data[pos] !== needle[0] ||\n (\n (Buffer.compare(\n data.subarray(pos, pos + len - pos),\n needle.subarray(0, len - pos)\n ) !== 0)\n )\n )\n ) {\n ++pos\n }\n if (pos < len) {\n data.copy(this._lookbehind, 0, pos, pos + (len - pos))\n this._lookbehind_size = len - pos\n }\n\n // Everything until pos is guaranteed not to contain needle data.\n if (pos > 0) { this.emit('info', false, data, this._bufpos, pos < len ? pos : len) }\n\n this._bufpos = len\n return len\n}\n\nSBMH.prototype._sbmh_lookup_char = function (data, pos) {\n return (pos < 0)\n ? this._lookbehind[this._lookbehind_size + pos]\n : data[pos]\n}\n\nSBMH.prototype._sbmh_memcmp = function (data, pos, len) {\n for (var i = 0; i < len; ++i) { // eslint-disable-line no-var\n if (this._sbmh_lookup_char(data, pos + i) !== this._needle[i]) { return false }\n }\n return true\n}\n\nmodule.exports = SBMH\n","'use strict'\n\nconst inherits = require('node:util').inherits\nconst ReadableStream = require('node:stream').Readable\n\nfunction PartStream (opts) {\n ReadableStream.call(this, opts)\n}\ninherits(PartStream, ReadableStream)\n\nPartStream.prototype._read = function (n) {}\n\nmodule.exports = PartStream\n","'use strict'\n\nmodule.exports = function getLimit (limits, name, defaultLimit) {\n if (\n !limits ||\n limits[name] === undefined ||\n limits[name] === null\n ) { return defaultLimit }\n\n if (\n typeof limits[name] !== 'number' ||\n isNaN(limits[name])\n ) { throw new TypeError('Limit ' + name + ' is not a valid number') }\n\n return limits[name]\n}\n","'use strict'\n\nconst EventEmitter = require('node:events').EventEmitter\nconst inherits = require('node:util').inherits\nconst getLimit = require('../../../lib/utils/getLimit')\n\nconst StreamSearch = require('../../streamsearch/sbmh')\n\nconst B_DCRLF = Buffer.from('\\r\\n\\r\\n')\nconst RE_CRLF = /\\r\\n/g\nconst RE_HDR = /^([^:]+):[ \\t]?([\\x00-\\xFF]+)?$/ // eslint-disable-line no-control-regex\n\nfunction HeaderParser (cfg) {\n EventEmitter.call(this)\n\n cfg = cfg || {}\n const self = this\n this.nread = 0\n this.maxed = false\n this.npairs = 0\n this.maxHeaderPairs = getLimit(cfg, 'maxHeaderPairs', 2000)\n this.maxHeaderSize = getLimit(cfg, 'maxHeaderSize', 80 * 1024)\n this.buffer = ''\n this.header = {}\n this.finished = false\n this.ss = new StreamSearch(B_DCRLF)\n this.ss.on('info', function (isMatch, data, start, end) {\n if (data && !self.maxed) {\n if (self.nread + end - start >= self.maxHeaderSize) {\n end = self.maxHeaderSize - self.nread + start\n self.nread = self.maxHeaderSize\n self.maxed = true\n } else { self.nread += (end - start) }\n\n self.buffer += data.toString('binary', start, end)\n }\n if (isMatch) { self._finish() }\n })\n}\ninherits(HeaderParser, EventEmitter)\n\nHeaderParser.prototype.push = function (data) {\n const r = this.ss.push(data)\n if (this.finished) { return r }\n}\n\nHeaderParser.prototype.reset = function () {\n this.finished = false\n this.buffer = ''\n this.header = {}\n this.ss.reset()\n}\n\nHeaderParser.prototype._finish = function () {\n if (this.buffer) { this._parseHeader() }\n this.ss.matches = this.ss.maxMatches\n const header = this.header\n this.header = {}\n this.buffer = ''\n this.finished = true\n this.nread = this.npairs = 0\n this.maxed = false\n this.emit('header', header)\n}\n\nHeaderParser.prototype._parseHeader = function () {\n if (this.npairs === this.maxHeaderPairs) { return }\n\n const lines = this.buffer.split(RE_CRLF)\n const len = lines.length\n let m, h\n\n for (var i = 0; i < len; ++i) { // eslint-disable-line no-var\n if (lines[i].length === 0) { continue }\n if (lines[i][0] === '\\t' || lines[i][0] === ' ') {\n // folded header content\n // RFC2822 says to just remove the CRLF and not the whitespace following\n // it, so we follow the RFC and include the leading whitespace ...\n if (h) {\n this.header[h][this.header[h].length - 1] += lines[i]\n continue\n }\n }\n\n const posColon = lines[i].indexOf(':')\n if (\n posColon === -1 ||\n posColon === 0\n ) {\n return\n }\n m = RE_HDR.exec(lines[i])\n h = m[1].toLowerCase()\n this.header[h] = this.header[h] || []\n this.header[h].push((m[2] || ''))\n if (++this.npairs === this.maxHeaderPairs) { break }\n }\n}\n\nmodule.exports = HeaderParser\n","'use strict'\n\nconst WritableStream = require('node:stream').Writable\nconst inherits = require('node:util').inherits\n\nconst StreamSearch = require('../../streamsearch/sbmh')\n\nconst PartStream = require('./PartStream')\nconst HeaderParser = require('./HeaderParser')\n\nconst DASH = 45\nconst B_ONEDASH = Buffer.from('-')\nconst B_CRLF = Buffer.from('\\r\\n')\nconst EMPTY_FN = function () {}\n\nfunction Dicer (cfg) {\n if (!(this instanceof Dicer)) { return new Dicer(cfg) }\n WritableStream.call(this, cfg)\n\n if (!cfg || (!cfg.headerFirst && typeof cfg.boundary !== 'string')) { throw new TypeError('Boundary required') }\n\n if (typeof cfg.boundary === 'string') { this.setBoundary(cfg.boundary) } else { this._bparser = undefined }\n\n this._headerFirst = cfg.headerFirst\n\n this._dashes = 0\n this._parts = 0\n this._finished = false\n this._realFinish = false\n this._isPreamble = true\n this._justMatched = false\n this._firstWrite = true\n this._inHeader = true\n this._part = undefined\n this._cb = undefined\n this._ignoreData = false\n this._partOpts = { highWaterMark: cfg.partHwm }\n this._pause = false\n\n const self = this\n this._hparser = new HeaderParser(cfg)\n this._hparser.on('header', function (header) {\n self._inHeader = false\n self._part.emit('header', header)\n })\n}\ninherits(Dicer, WritableStream)\n\nDicer.prototype.emit = function (ev) {\n if (ev === 'finish' && !this._realFinish) {\n if (!this._finished) {\n const self = this\n process.nextTick(function () {\n self.emit('error', new Error('Unexpected end of multipart data'))\n if (self._part && !self._ignoreData) {\n const type = (self._isPreamble ? 'Preamble' : 'Part')\n self._part.emit('error', new Error(type + ' terminated early due to unexpected end of multipart data'))\n self._part.push(null)\n process.nextTick(function () {\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n })\n return\n }\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n })\n }\n } else { WritableStream.prototype.emit.apply(this, arguments) }\n}\n\nDicer.prototype._write = function (data, encoding, cb) {\n // ignore unexpected data (e.g. extra trailer data after finished)\n if (!this._hparser && !this._bparser) { return cb() }\n\n if (this._headerFirst && this._isPreamble) {\n if (!this._part) {\n this._part = new PartStream(this._partOpts)\n if (this.listenerCount('preamble') !== 0) { this.emit('preamble', this._part) } else { this._ignore() }\n }\n const r = this._hparser.push(data)\n if (!this._inHeader && r !== undefined && r < data.length) { data = data.slice(r) } else { return cb() }\n }\n\n // allows for \"easier\" testing\n if (this._firstWrite) {\n this._bparser.push(B_CRLF)\n this._firstWrite = false\n }\n\n this._bparser.push(data)\n\n if (this._pause) { this._cb = cb } else { cb() }\n}\n\nDicer.prototype.reset = function () {\n this._part = undefined\n this._bparser = undefined\n this._hparser = undefined\n}\n\nDicer.prototype.setBoundary = function (boundary) {\n const self = this\n this._bparser = new StreamSearch('\\r\\n--' + boundary)\n this._bparser.on('info', function (isMatch, data, start, end) {\n self._oninfo(isMatch, data, start, end)\n })\n}\n\nDicer.prototype._ignore = function () {\n if (this._part && !this._ignoreData) {\n this._ignoreData = true\n this._part.on('error', EMPTY_FN)\n // we must perform some kind of read on the stream even though we are\n // ignoring the data, otherwise node's Readable stream will not emit 'end'\n // after pushing null to the stream\n this._part.resume()\n }\n}\n\nDicer.prototype._oninfo = function (isMatch, data, start, end) {\n let buf; const self = this; let i = 0; let r; let shouldWriteMore = true\n\n if (!this._part && this._justMatched && data) {\n while (this._dashes < 2 && (start + i) < end) {\n if (data[start + i] === DASH) {\n ++i\n ++this._dashes\n } else {\n if (this._dashes) { buf = B_ONEDASH }\n this._dashes = 0\n break\n }\n }\n if (this._dashes === 2) {\n if ((start + i) < end && this.listenerCount('trailer') !== 0) { this.emit('trailer', data.slice(start + i, end)) }\n this.reset()\n this._finished = true\n // no more parts will be added\n if (self._parts === 0) {\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n }\n }\n if (this._dashes) { return }\n }\n if (this._justMatched) { this._justMatched = false }\n if (!this._part) {\n this._part = new PartStream(this._partOpts)\n this._part._read = function (n) {\n self._unpause()\n }\n if (this._isPreamble && this.listenerCount('preamble') !== 0) {\n this.emit('preamble', this._part)\n } else if (this._isPreamble !== true && this.listenerCount('part') !== 0) {\n this.emit('part', this._part)\n } else {\n this._ignore()\n }\n if (!this._isPreamble) { this._inHeader = true }\n }\n if (data && start < end && !this._ignoreData) {\n if (this._isPreamble || !this._inHeader) {\n if (buf) { shouldWriteMore = this._part.push(buf) }\n shouldWriteMore = this._part.push(data.slice(start, end))\n if (!shouldWriteMore) { this._pause = true }\n } else if (!this._isPreamble && this._inHeader) {\n if (buf) { this._hparser.push(buf) }\n r = this._hparser.push(data.slice(start, end))\n if (!this._inHeader && r !== undefined && r < end) { this._oninfo(false, data, start + r, end) }\n }\n }\n if (isMatch) {\n this._hparser.reset()\n if (this._isPreamble) { this._isPreamble = false } else {\n if (start !== end) {\n ++this._parts\n this._part.on('end', function () {\n if (--self._parts === 0) {\n if (self._finished) {\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n } else {\n self._unpause()\n }\n }\n })\n }\n }\n this._part.push(null)\n this._part = undefined\n this._ignoreData = false\n this._justMatched = true\n this._dashes = 0\n }\n}\n\nDicer.prototype._unpause = function () {\n if (!this._pause) { return }\n\n this._pause = false\n if (this._cb) {\n const cb = this._cb\n this._cb = undefined\n cb()\n }\n}\n\nmodule.exports = Dicer\n","'use strict'\n\n// Node has always utf-8\nconst utf8Decoder = new TextDecoder('utf-8')\nconst textDecoders = new Map([\n ['utf-8', utf8Decoder],\n ['utf8', utf8Decoder]\n])\n\nfunction getDecoder (charset) {\n let lc\n while (true) {\n switch (charset) {\n case 'utf-8':\n case 'utf8':\n return decoders.utf8\n case 'latin1':\n case 'ascii': // TODO: Make these a separate, strict decoder?\n case 'us-ascii':\n case 'iso-8859-1':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'windows-1252':\n case 'iso_8859-1:1987':\n case 'cp1252':\n case 'x-cp1252':\n return decoders.latin1\n case 'utf16le':\n case 'utf-16le':\n case 'ucs2':\n case 'ucs-2':\n return decoders.utf16le\n case 'base64':\n return decoders.base64\n default:\n if (lc === undefined) {\n lc = true\n charset = charset.toLowerCase()\n continue\n }\n return decoders.other.bind(charset)\n }\n }\n}\n\nconst decoders = {\n utf8: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n return data.utf8Slice(0, data.length)\n },\n\n latin1: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n return data\n }\n return data.latin1Slice(0, data.length)\n },\n\n utf16le: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n return data.ucs2Slice(0, data.length)\n },\n\n base64: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n return data.base64Slice(0, data.length)\n },\n\n other: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n\n if (textDecoders.has(this.toString())) {\n try {\n return textDecoders.get(this).decode(data)\n } catch {}\n }\n return typeof data === 'string'\n ? data\n : data.toString()\n }\n}\n\nfunction decodeText (text, sourceEncoding, destEncoding) {\n if (text) {\n return getDecoder(destEncoding)(text, sourceEncoding)\n }\n return text\n}\n\nmodule.exports = decodeText\n","/* eslint-disable object-property-newline */\n'use strict'\n\nconst decodeText = require('./decodeText')\n\nconst RE_ENCODED = /%[a-fA-F0-9][a-fA-F0-9]/g\n\nconst EncodedLookup = {\n '%00': '\\x00', '%01': '\\x01', '%02': '\\x02', '%03': '\\x03', '%04': '\\x04',\n '%05': '\\x05', '%06': '\\x06', '%07': '\\x07', '%08': '\\x08', '%09': '\\x09',\n '%0a': '\\x0a', '%0A': '\\x0a', '%0b': '\\x0b', '%0B': '\\x0b', '%0c': '\\x0c',\n '%0C': '\\x0c', '%0d': '\\x0d', '%0D': '\\x0d', '%0e': '\\x0e', '%0E': '\\x0e',\n '%0f': '\\x0f', '%0F': '\\x0f', '%10': '\\x10', '%11': '\\x11', '%12': '\\x12',\n '%13': '\\x13', '%14': '\\x14', '%15': '\\x15', '%16': '\\x16', '%17': '\\x17',\n '%18': '\\x18', '%19': '\\x19', '%1a': '\\x1a', '%1A': '\\x1a', '%1b': '\\x1b',\n '%1B': '\\x1b', '%1c': '\\x1c', '%1C': '\\x1c', '%1d': '\\x1d', '%1D': '\\x1d',\n '%1e': '\\x1e', '%1E': '\\x1e', '%1f': '\\x1f', '%1F': '\\x1f', '%20': '\\x20',\n '%21': '\\x21', '%22': '\\x22', '%23': '\\x23', '%24': '\\x24', '%25': '\\x25',\n '%26': '\\x26', '%27': '\\x27', '%28': '\\x28', '%29': '\\x29', '%2a': '\\x2a',\n '%2A': '\\x2a', '%2b': '\\x2b', '%2B': '\\x2b', '%2c': '\\x2c', '%2C': '\\x2c',\n '%2d': '\\x2d', '%2D': '\\x2d', '%2e': '\\x2e', '%2E': '\\x2e', '%2f': '\\x2f',\n '%2F': '\\x2f', '%30': '\\x30', '%31': '\\x31', '%32': '\\x32', '%33': '\\x33',\n '%34': '\\x34', '%35': '\\x35', '%36': '\\x36', '%37': '\\x37', '%38': '\\x38',\n '%39': '\\x39', '%3a': '\\x3a', '%3A': '\\x3a', '%3b': '\\x3b', '%3B': '\\x3b',\n '%3c': '\\x3c', '%3C': '\\x3c', '%3d': '\\x3d', '%3D': '\\x3d', '%3e': '\\x3e',\n '%3E': '\\x3e', '%3f': '\\x3f', '%3F': '\\x3f', '%40': '\\x40', '%41': '\\x41',\n '%42': '\\x42', '%43': '\\x43', '%44': '\\x44', '%45': '\\x45', '%46': '\\x46',\n '%47': '\\x47', '%48': '\\x48', '%49': '\\x49', '%4a': '\\x4a', '%4A': '\\x4a',\n '%4b': '\\x4b', '%4B': '\\x4b', '%4c': '\\x4c', '%4C': '\\x4c', '%4d': '\\x4d',\n '%4D': '\\x4d', '%4e': '\\x4e', '%4E': '\\x4e', '%4f': '\\x4f', '%4F': '\\x4f',\n '%50': '\\x50', '%51': '\\x51', '%52': '\\x52', '%53': '\\x53', '%54': '\\x54',\n '%55': '\\x55', '%56': '\\x56', '%57': '\\x57', '%58': '\\x58', '%59': '\\x59',\n '%5a': '\\x5a', '%5A': '\\x5a', '%5b': '\\x5b', '%5B': '\\x5b', '%5c': '\\x5c',\n '%5C': '\\x5c', '%5d': '\\x5d', '%5D': '\\x5d', '%5e': '\\x5e', '%5E': '\\x5e',\n '%5f': '\\x5f', '%5F': '\\x5f', '%60': '\\x60', '%61': '\\x61', '%62': '\\x62',\n '%63': '\\x63', '%64': '\\x64', '%65': '\\x65', '%66': '\\x66', '%67': '\\x67',\n '%68': '\\x68', '%69': '\\x69', '%6a': '\\x6a', '%6A': '\\x6a', '%6b': '\\x6b',\n '%6B': '\\x6b', '%6c': '\\x6c', '%6C': '\\x6c', '%6d': '\\x6d', '%6D': '\\x6d',\n '%6e': '\\x6e', '%6E': '\\x6e', '%6f': '\\x6f', '%6F': '\\x6f', '%70': '\\x70',\n '%71': '\\x71', '%72': '\\x72', '%73': '\\x73', '%74': '\\x74', '%75': '\\x75',\n '%76': '\\x76', '%77': '\\x77', '%78': '\\x78', '%79': '\\x79', '%7a': '\\x7a',\n '%7A': '\\x7a', '%7b': '\\x7b', '%7B': '\\x7b', '%7c': '\\x7c', '%7C': '\\x7c',\n '%7d': '\\x7d', '%7D': '\\x7d', '%7e': '\\x7e', '%7E': '\\x7e', '%7f': '\\x7f',\n '%7F': '\\x7f', '%80': '\\x80', '%81': '\\x81', '%82': '\\x82', '%83': '\\x83',\n '%84': '\\x84', '%85': '\\x85', '%86': '\\x86', '%87': '\\x87', '%88': '\\x88',\n '%89': '\\x89', '%8a': '\\x8a', '%8A': '\\x8a', '%8b': '\\x8b', '%8B': '\\x8b',\n '%8c': '\\x8c', '%8C': '\\x8c', '%8d': '\\x8d', '%8D': '\\x8d', '%8e': '\\x8e',\n '%8E': '\\x8e', '%8f': '\\x8f', '%8F': '\\x8f', '%90': '\\x90', '%91': '\\x91',\n '%92': '\\x92', '%93': '\\x93', '%94': '\\x94', '%95': '\\x95', '%96': '\\x96',\n '%97': '\\x97', '%98': '\\x98', '%99': '\\x99', '%9a': '\\x9a', '%9A': '\\x9a',\n '%9b': '\\x9b', '%9B': '\\x9b', '%9c': '\\x9c', '%9C': '\\x9c', '%9d': '\\x9d',\n '%9D': '\\x9d', '%9e': '\\x9e', '%9E': '\\x9e', '%9f': '\\x9f', '%9F': '\\x9f',\n '%a0': '\\xa0', '%A0': '\\xa0', '%a1': '\\xa1', '%A1': '\\xa1', '%a2': '\\xa2',\n '%A2': '\\xa2', '%a3': '\\xa3', '%A3': '\\xa3', '%a4': '\\xa4', '%A4': '\\xa4',\n '%a5': '\\xa5', '%A5': '\\xa5', '%a6': '\\xa6', '%A6': '\\xa6', '%a7': '\\xa7',\n '%A7': '\\xa7', '%a8': '\\xa8', '%A8': '\\xa8', '%a9': '\\xa9', '%A9': '\\xa9',\n '%aa': '\\xaa', '%Aa': '\\xaa', '%aA': '\\xaa', '%AA': '\\xaa', '%ab': '\\xab',\n '%Ab': '\\xab', '%aB': '\\xab', '%AB': '\\xab', '%ac': '\\xac', '%Ac': '\\xac',\n '%aC': '\\xac', '%AC': '\\xac', '%ad': '\\xad', '%Ad': '\\xad', '%aD': '\\xad',\n '%AD': '\\xad', '%ae': '\\xae', '%Ae': '\\xae', '%aE': '\\xae', '%AE': '\\xae',\n '%af': '\\xaf', '%Af': '\\xaf', '%aF': '\\xaf', '%AF': '\\xaf', '%b0': '\\xb0',\n '%B0': '\\xb0', '%b1': '\\xb1', '%B1': '\\xb1', '%b2': '\\xb2', '%B2': '\\xb2',\n '%b3': '\\xb3', '%B3': '\\xb3', '%b4': '\\xb4', '%B4': '\\xb4', '%b5': '\\xb5',\n '%B5': '\\xb5', '%b6': '\\xb6', '%B6': '\\xb6', '%b7': '\\xb7', '%B7': '\\xb7',\n '%b8': '\\xb8', '%B8': '\\xb8', '%b9': '\\xb9', '%B9': '\\xb9', '%ba': '\\xba',\n '%Ba': '\\xba', '%bA': '\\xba', '%BA': '\\xba', '%bb': '\\xbb', '%Bb': '\\xbb',\n '%bB': '\\xbb', '%BB': '\\xbb', '%bc': '\\xbc', '%Bc': '\\xbc', '%bC': '\\xbc',\n '%BC': '\\xbc', '%bd': '\\xbd', '%Bd': '\\xbd', '%bD': '\\xbd', '%BD': '\\xbd',\n '%be': '\\xbe', '%Be': '\\xbe', '%bE': '\\xbe', '%BE': '\\xbe', '%bf': '\\xbf',\n '%Bf': '\\xbf', '%bF': '\\xbf', '%BF': '\\xbf', '%c0': '\\xc0', '%C0': '\\xc0',\n '%c1': '\\xc1', '%C1': '\\xc1', '%c2': '\\xc2', '%C2': '\\xc2', '%c3': '\\xc3',\n '%C3': '\\xc3', '%c4': '\\xc4', '%C4': '\\xc4', '%c5': '\\xc5', '%C5': '\\xc5',\n '%c6': '\\xc6', '%C6': '\\xc6', '%c7': '\\xc7', '%C7': '\\xc7', '%c8': '\\xc8',\n '%C8': '\\xc8', '%c9': '\\xc9', '%C9': '\\xc9', '%ca': '\\xca', '%Ca': '\\xca',\n '%cA': '\\xca', '%CA': '\\xca', '%cb': '\\xcb', '%Cb': '\\xcb', '%cB': '\\xcb',\n '%CB': '\\xcb', '%cc': '\\xcc', '%Cc': '\\xcc', '%cC': '\\xcc', '%CC': '\\xcc',\n '%cd': '\\xcd', '%Cd': '\\xcd', '%cD': '\\xcd', '%CD': '\\xcd', '%ce': '\\xce',\n '%Ce': '\\xce', '%cE': '\\xce', '%CE': '\\xce', '%cf': '\\xcf', '%Cf': '\\xcf',\n '%cF': '\\xcf', '%CF': '\\xcf', '%d0': '\\xd0', '%D0': '\\xd0', '%d1': '\\xd1',\n '%D1': '\\xd1', '%d2': '\\xd2', '%D2': '\\xd2', '%d3': '\\xd3', '%D3': '\\xd3',\n '%d4': '\\xd4', '%D4': '\\xd4', '%d5': '\\xd5', '%D5': '\\xd5', '%d6': '\\xd6',\n '%D6': '\\xd6', '%d7': '\\xd7', '%D7': '\\xd7', '%d8': '\\xd8', '%D8': '\\xd8',\n '%d9': '\\xd9', '%D9': '\\xd9', '%da': '\\xda', '%Da': '\\xda', '%dA': '\\xda',\n '%DA': '\\xda', '%db': '\\xdb', '%Db': '\\xdb', '%dB': '\\xdb', '%DB': '\\xdb',\n '%dc': '\\xdc', '%Dc': '\\xdc', '%dC': '\\xdc', '%DC': '\\xdc', '%dd': '\\xdd',\n '%Dd': '\\xdd', '%dD': '\\xdd', '%DD': '\\xdd', '%de': '\\xde', '%De': '\\xde',\n '%dE': '\\xde', '%DE': '\\xde', '%df': '\\xdf', '%Df': '\\xdf', '%dF': '\\xdf',\n '%DF': '\\xdf', '%e0': '\\xe0', '%E0': '\\xe0', '%e1': '\\xe1', '%E1': '\\xe1',\n '%e2': '\\xe2', '%E2': '\\xe2', '%e3': '\\xe3', '%E3': '\\xe3', '%e4': '\\xe4',\n '%E4': '\\xe4', '%e5': '\\xe5', '%E5': '\\xe5', '%e6': '\\xe6', '%E6': '\\xe6',\n '%e7': '\\xe7', '%E7': '\\xe7', '%e8': '\\xe8', '%E8': '\\xe8', '%e9': '\\xe9',\n '%E9': '\\xe9', '%ea': '\\xea', '%Ea': '\\xea', '%eA': '\\xea', '%EA': '\\xea',\n '%eb': '\\xeb', '%Eb': '\\xeb', '%eB': '\\xeb', '%EB': '\\xeb', '%ec': '\\xec',\n '%Ec': '\\xec', '%eC': '\\xec', '%EC': '\\xec', '%ed': '\\xed', '%Ed': '\\xed',\n '%eD': '\\xed', '%ED': '\\xed', '%ee': '\\xee', '%Ee': '\\xee', '%eE': '\\xee',\n '%EE': '\\xee', '%ef': '\\xef', '%Ef': '\\xef', '%eF': '\\xef', '%EF': '\\xef',\n '%f0': '\\xf0', '%F0': '\\xf0', '%f1': '\\xf1', '%F1': '\\xf1', '%f2': '\\xf2',\n '%F2': '\\xf2', '%f3': '\\xf3', '%F3': '\\xf3', '%f4': '\\xf4', '%F4': '\\xf4',\n '%f5': '\\xf5', '%F5': '\\xf5', '%f6': '\\xf6', '%F6': '\\xf6', '%f7': '\\xf7',\n '%F7': '\\xf7', '%f8': '\\xf8', '%F8': '\\xf8', '%f9': '\\xf9', '%F9': '\\xf9',\n '%fa': '\\xfa', '%Fa': '\\xfa', '%fA': '\\xfa', '%FA': '\\xfa', '%fb': '\\xfb',\n '%Fb': '\\xfb', '%fB': '\\xfb', '%FB': '\\xfb', '%fc': '\\xfc', '%Fc': '\\xfc',\n '%fC': '\\xfc', '%FC': '\\xfc', '%fd': '\\xfd', '%Fd': '\\xfd', '%fD': '\\xfd',\n '%FD': '\\xfd', '%fe': '\\xfe', '%Fe': '\\xfe', '%fE': '\\xfe', '%FE': '\\xfe',\n '%ff': '\\xff', '%Ff': '\\xff', '%fF': '\\xff', '%FF': '\\xff'\n}\n\nfunction encodedReplacer (match) {\n return EncodedLookup[match]\n}\n\nconst STATE_KEY = 0\nconst STATE_VALUE = 1\nconst STATE_CHARSET = 2\nconst STATE_LANG = 3\n\nfunction parseParams (str) {\n const res = []\n let state = STATE_KEY\n let charset = ''\n let inquote = false\n let escaping = false\n let p = 0\n let tmp = ''\n const len = str.length\n\n for (var i = 0; i < len; ++i) { // eslint-disable-line no-var\n const char = str[i]\n if (char === '\\\\' && inquote) {\n if (escaping) { escaping = false } else {\n escaping = true\n continue\n }\n } else if (char === '\"') {\n if (!escaping) {\n if (inquote) {\n inquote = false\n state = STATE_KEY\n } else { inquote = true }\n continue\n } else { escaping = false }\n } else {\n if (escaping && inquote) { tmp += '\\\\' }\n escaping = false\n if ((state === STATE_CHARSET || state === STATE_LANG) && char === \"'\") {\n if (state === STATE_CHARSET) {\n state = STATE_LANG\n charset = tmp.substring(1)\n } else { state = STATE_VALUE }\n tmp = ''\n continue\n } else if (state === STATE_KEY &&\n (char === '*' || char === '=') &&\n res.length) {\n state = char === '*'\n ? STATE_CHARSET\n : STATE_VALUE\n res[p] = [tmp, undefined]\n tmp = ''\n continue\n } else if (!inquote && char === ';') {\n state = STATE_KEY\n if (charset) {\n if (tmp.length) {\n tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer),\n 'binary',\n charset)\n }\n charset = ''\n } else if (tmp.length) {\n tmp = decodeText(tmp, 'binary', 'utf8')\n }\n if (res[p] === undefined) { res[p] = tmp } else { res[p][1] = tmp }\n tmp = ''\n ++p\n continue\n } else if (!inquote && (char === ' ' || char === '\\t')) { continue }\n }\n tmp += char\n }\n if (charset && tmp.length) {\n tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer),\n 'binary',\n charset)\n } else if (tmp) {\n tmp = decodeText(tmp, 'binary', 'utf8')\n }\n\n if (res[p] === undefined) {\n if (tmp) { res[p] = tmp }\n } else { res[p][1] = tmp }\n\n return res\n}\n\nmodule.exports = parseParams\n","'use strict'\n\nmodule.exports = function basename (path) {\n if (typeof path !== 'string') { return '' }\n for (var i = path.length - 1; i >= 0; --i) { // eslint-disable-line no-var\n switch (path.charCodeAt(i)) {\n case 0x2F: // '/'\n case 0x5C: // '\\'\n path = path.slice(i + 1)\n return (path === '..' || path === '.' ? '' : path)\n }\n }\n return (path === '..' || path === '.' ? '' : path)\n}\n","'use strict'\n\n// TODO:\n// * support 1 nested multipart level\n// (see second multipart example here:\n// http://www.w3.org/TR/html401/interact/forms.html#didx-multipartform-data)\n// * support limits.fieldNameSize\n// -- this will require modifications to utils.parseParams\n\nconst { Readable } = require('node:stream')\nconst { inherits } = require('node:util')\n\nconst Dicer = require('../../deps/dicer/lib/Dicer')\n\nconst parseParams = require('../utils/parseParams')\nconst decodeText = require('../utils/decodeText')\nconst basename = require('../utils/basename')\nconst getLimit = require('../utils/getLimit')\n\nconst RE_BOUNDARY = /^boundary$/i\nconst RE_FIELD = /^form-data$/i\nconst RE_CHARSET = /^charset$/i\nconst RE_FILENAME = /^filename$/i\nconst RE_NAME = /^name$/i\n\nMultipart.detect = /^multipart\\/form-data/i\nfunction Multipart (boy, cfg) {\n let i\n let len\n const self = this\n let boundary\n const limits = cfg.limits\n const isPartAFile = cfg.isPartAFile || ((fieldName, contentType, fileName) => (contentType === 'application/octet-stream' || fileName !== undefined))\n const parsedConType = cfg.parsedConType || []\n const defCharset = cfg.defCharset || 'utf8'\n const preservePath = cfg.preservePath\n const fileOpts = { highWaterMark: cfg.fileHwm }\n\n for (i = 0, len = parsedConType.length; i < len; ++i) {\n if (Array.isArray(parsedConType[i]) &&\n RE_BOUNDARY.test(parsedConType[i][0])) {\n boundary = parsedConType[i][1]\n break\n }\n }\n\n function checkFinished () {\n if (nends === 0 && finished && !boy._done) {\n finished = false\n self.end()\n }\n }\n\n if (typeof boundary !== 'string') { throw new Error('Multipart: Boundary not found') }\n\n const fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024)\n const fileSizeLimit = getLimit(limits, 'fileSize', Infinity)\n const filesLimit = getLimit(limits, 'files', Infinity)\n const fieldsLimit = getLimit(limits, 'fields', Infinity)\n const partsLimit = getLimit(limits, 'parts', Infinity)\n const headerPairsLimit = getLimit(limits, 'headerPairs', 2000)\n const headerSizeLimit = getLimit(limits, 'headerSize', 80 * 1024)\n\n let nfiles = 0\n let nfields = 0\n let nends = 0\n let curFile\n let curField\n let finished = false\n\n this._needDrain = false\n this._pause = false\n this._cb = undefined\n this._nparts = 0\n this._boy = boy\n\n const parserCfg = {\n boundary,\n maxHeaderPairs: headerPairsLimit,\n maxHeaderSize: headerSizeLimit,\n partHwm: fileOpts.highWaterMark,\n highWaterMark: cfg.highWaterMark\n }\n\n this.parser = new Dicer(parserCfg)\n this.parser.on('drain', function () {\n self._needDrain = false\n if (self._cb && !self._pause) {\n const cb = self._cb\n self._cb = undefined\n cb()\n }\n }).on('part', function onPart (part) {\n if (++self._nparts > partsLimit) {\n self.parser.removeListener('part', onPart)\n self.parser.on('part', skipPart)\n boy.hitPartsLimit = true\n boy.emit('partsLimit')\n return skipPart(part)\n }\n\n // hack because streams2 _always_ doesn't emit 'end' until nextTick, so let\n // us emit 'end' early since we know the part has ended if we are already\n // seeing the next part\n if (curField) {\n const field = curField\n field.emit('end')\n field.removeAllListeners('end')\n }\n\n part.on('header', function (header) {\n let contype\n let fieldname\n let parsed\n let charset\n let encoding\n let filename\n let nsize = 0\n\n if (header['content-type']) {\n parsed = parseParams(header['content-type'][0])\n if (parsed[0]) {\n contype = parsed[0].toLowerCase()\n for (i = 0, len = parsed.length; i < len; ++i) {\n if (RE_CHARSET.test(parsed[i][0])) {\n charset = parsed[i][1].toLowerCase()\n break\n }\n }\n }\n }\n\n if (contype === undefined) { contype = 'text/plain' }\n if (charset === undefined) { charset = defCharset }\n\n if (header['content-disposition']) {\n parsed = parseParams(header['content-disposition'][0])\n if (!RE_FIELD.test(parsed[0])) { return skipPart(part) }\n for (i = 0, len = parsed.length; i < len; ++i) {\n if (RE_NAME.test(parsed[i][0])) {\n fieldname = parsed[i][1]\n } else if (RE_FILENAME.test(parsed[i][0])) {\n filename = parsed[i][1]\n if (!preservePath) { filename = basename(filename) }\n }\n }\n } else { return skipPart(part) }\n\n if (header['content-transfer-encoding']) { encoding = header['content-transfer-encoding'][0].toLowerCase() } else { encoding = '7bit' }\n\n let onData,\n onEnd\n\n if (isPartAFile(fieldname, contype, filename)) {\n // file/binary field\n if (nfiles === filesLimit) {\n if (!boy.hitFilesLimit) {\n boy.hitFilesLimit = true\n boy.emit('filesLimit')\n }\n return skipPart(part)\n }\n\n ++nfiles\n\n if (boy.listenerCount('file') === 0) {\n self.parser._ignore()\n return\n }\n\n ++nends\n const file = new FileStream(fileOpts)\n curFile = file\n file.on('end', function () {\n --nends\n self._pause = false\n checkFinished()\n if (self._cb && !self._needDrain) {\n const cb = self._cb\n self._cb = undefined\n cb()\n }\n })\n file._read = function (n) {\n if (!self._pause) { return }\n self._pause = false\n if (self._cb && !self._needDrain) {\n const cb = self._cb\n self._cb = undefined\n cb()\n }\n }\n boy.emit('file', fieldname, file, filename, encoding, contype)\n\n onData = function (data) {\n if ((nsize += data.length) > fileSizeLimit) {\n const extralen = fileSizeLimit - nsize + data.length\n if (extralen > 0) { file.push(data.slice(0, extralen)) }\n file.truncated = true\n file.bytesRead = fileSizeLimit\n part.removeAllListeners('data')\n file.emit('limit')\n return\n } else if (!file.push(data)) { self._pause = true }\n\n file.bytesRead = nsize\n }\n\n onEnd = function () {\n curFile = undefined\n file.push(null)\n }\n } else {\n // non-file field\n if (nfields === fieldsLimit) {\n if (!boy.hitFieldsLimit) {\n boy.hitFieldsLimit = true\n boy.emit('fieldsLimit')\n }\n return skipPart(part)\n }\n\n ++nfields\n ++nends\n let buffer = ''\n let truncated = false\n curField = part\n\n onData = function (data) {\n if ((nsize += data.length) > fieldSizeLimit) {\n const extralen = (fieldSizeLimit - (nsize - data.length))\n buffer += data.toString('binary', 0, extralen)\n truncated = true\n part.removeAllListeners('data')\n } else { buffer += data.toString('binary') }\n }\n\n onEnd = function () {\n curField = undefined\n if (buffer.length) { buffer = decodeText(buffer, 'binary', charset) }\n boy.emit('field', fieldname, buffer, false, truncated, encoding, contype)\n --nends\n checkFinished()\n }\n }\n\n /* As of node@2efe4ab761666 (v0.10.29+/v0.11.14+), busboy had become\n broken. Streams2/streams3 is a huge black box of confusion, but\n somehow overriding the sync state seems to fix things again (and still\n seems to work for previous node versions).\n */\n part._readableState.sync = false\n\n part.on('data', onData)\n part.on('end', onEnd)\n }).on('error', function (err) {\n if (curFile) { curFile.emit('error', err) }\n })\n }).on('error', function (err) {\n boy.emit('error', err)\n }).on('finish', function () {\n finished = true\n checkFinished()\n })\n}\n\nMultipart.prototype.write = function (chunk, cb) {\n const r = this.parser.write(chunk)\n if (r && !this._pause) {\n cb()\n } else {\n this._needDrain = !r\n this._cb = cb\n }\n}\n\nMultipart.prototype.end = function () {\n const self = this\n\n if (self.parser.writable) {\n self.parser.end()\n } else if (!self._boy._done) {\n process.nextTick(function () {\n self._boy._done = true\n self._boy.emit('finish')\n })\n }\n}\n\nfunction skipPart (part) {\n part.resume()\n}\n\nfunction FileStream (opts) {\n Readable.call(this, opts)\n\n this.bytesRead = 0\n\n this.truncated = false\n}\n\ninherits(FileStream, Readable)\n\nFileStream.prototype._read = function (n) {}\n\nmodule.exports = Multipart\n","'use strict'\n\nconst RE_PLUS = /\\+/g\n\nconst HEX = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n]\n\nfunction Decoder () {\n this.buffer = undefined\n}\nDecoder.prototype.write = function (str) {\n // Replace '+' with ' ' before decoding\n str = str.replace(RE_PLUS, ' ')\n let res = ''\n let i = 0; let p = 0; const len = str.length\n for (; i < len; ++i) {\n if (this.buffer !== undefined) {\n if (!HEX[str.charCodeAt(i)]) {\n res += '%' + this.buffer\n this.buffer = undefined\n --i // retry character\n } else {\n this.buffer += str[i]\n ++p\n if (this.buffer.length === 2) {\n res += String.fromCharCode(parseInt(this.buffer, 16))\n this.buffer = undefined\n }\n }\n } else if (str[i] === '%') {\n if (i > p) {\n res += str.substring(p, i)\n p = i\n }\n this.buffer = ''\n ++p\n }\n }\n if (p < len && this.buffer === undefined) { res += str.substring(p) }\n return res\n}\nDecoder.prototype.reset = function () {\n this.buffer = undefined\n}\n\nmodule.exports = Decoder\n","'use strict'\n\nconst Decoder = require('../utils/Decoder')\nconst decodeText = require('../utils/decodeText')\nconst getLimit = require('../utils/getLimit')\n\nconst RE_CHARSET = /^charset$/i\n\nUrlEncoded.detect = /^application\\/x-www-form-urlencoded/i\nfunction UrlEncoded (boy, cfg) {\n const limits = cfg.limits\n const parsedConType = cfg.parsedConType\n this.boy = boy\n\n this.fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024)\n this.fieldNameSizeLimit = getLimit(limits, 'fieldNameSize', 100)\n this.fieldsLimit = getLimit(limits, 'fields', Infinity)\n\n let charset\n for (var i = 0, len = parsedConType.length; i < len; ++i) { // eslint-disable-line no-var\n if (Array.isArray(parsedConType[i]) &&\n RE_CHARSET.test(parsedConType[i][0])) {\n charset = parsedConType[i][1].toLowerCase()\n break\n }\n }\n\n if (charset === undefined) { charset = cfg.defCharset || 'utf8' }\n\n this.decoder = new Decoder()\n this.charset = charset\n this._fields = 0\n this._state = 'key'\n this._checkingBytes = true\n this._bytesKey = 0\n this._bytesVal = 0\n this._key = ''\n this._val = ''\n this._keyTrunc = false\n this._valTrunc = false\n this._hitLimit = false\n}\n\nUrlEncoded.prototype.write = function (data, cb) {\n if (this._fields === this.fieldsLimit) {\n if (!this.boy.hitFieldsLimit) {\n this.boy.hitFieldsLimit = true\n this.boy.emit('fieldsLimit')\n }\n return cb()\n }\n\n let idxeq; let idxamp; let i; let p = 0; const len = data.length\n\n while (p < len) {\n if (this._state === 'key') {\n idxeq = idxamp = undefined\n for (i = p; i < len; ++i) {\n if (!this._checkingBytes) { ++p }\n if (data[i] === 0x3D/* = */) {\n idxeq = i\n break\n } else if (data[i] === 0x26/* & */) {\n idxamp = i\n break\n }\n if (this._checkingBytes && this._bytesKey === this.fieldNameSizeLimit) {\n this._hitLimit = true\n break\n } else if (this._checkingBytes) { ++this._bytesKey }\n }\n\n if (idxeq !== undefined) {\n // key with assignment\n if (idxeq > p) { this._key += this.decoder.write(data.toString('binary', p, idxeq)) }\n this._state = 'val'\n\n this._hitLimit = false\n this._checkingBytes = true\n this._val = ''\n this._bytesVal = 0\n this._valTrunc = false\n this.decoder.reset()\n\n p = idxeq + 1\n } else if (idxamp !== undefined) {\n // key with no assignment\n ++this._fields\n let key; const keyTrunc = this._keyTrunc\n if (idxamp > p) { key = (this._key += this.decoder.write(data.toString('binary', p, idxamp))) } else { key = this._key }\n\n this._hitLimit = false\n this._checkingBytes = true\n this._key = ''\n this._bytesKey = 0\n this._keyTrunc = false\n this.decoder.reset()\n\n if (key.length) {\n this.boy.emit('field', decodeText(key, 'binary', this.charset),\n '',\n keyTrunc,\n false)\n }\n\n p = idxamp + 1\n if (this._fields === this.fieldsLimit) { return cb() }\n } else if (this._hitLimit) {\n // we may not have hit the actual limit if there are encoded bytes...\n if (i > p) { this._key += this.decoder.write(data.toString('binary', p, i)) }\n p = i\n if ((this._bytesKey = this._key.length) === this.fieldNameSizeLimit) {\n // yep, we actually did hit the limit\n this._checkingBytes = false\n this._keyTrunc = true\n }\n } else {\n if (p < len) { this._key += this.decoder.write(data.toString('binary', p)) }\n p = len\n }\n } else {\n idxamp = undefined\n for (i = p; i < len; ++i) {\n if (!this._checkingBytes) { ++p }\n if (data[i] === 0x26/* & */) {\n idxamp = i\n break\n }\n if (this._checkingBytes && this._bytesVal === this.fieldSizeLimit) {\n this._hitLimit = true\n break\n } else if (this._checkingBytes) { ++this._bytesVal }\n }\n\n if (idxamp !== undefined) {\n ++this._fields\n if (idxamp > p) { this._val += this.decoder.write(data.toString('binary', p, idxamp)) }\n this.boy.emit('field', decodeText(this._key, 'binary', this.charset),\n decodeText(this._val, 'binary', this.charset),\n this._keyTrunc,\n this._valTrunc)\n this._state = 'key'\n\n this._hitLimit = false\n this._checkingBytes = true\n this._key = ''\n this._bytesKey = 0\n this._keyTrunc = false\n this.decoder.reset()\n\n p = idxamp + 1\n if (this._fields === this.fieldsLimit) { return cb() }\n } else if (this._hitLimit) {\n // we may not have hit the actual limit if there are encoded bytes...\n if (i > p) { this._val += this.decoder.write(data.toString('binary', p, i)) }\n p = i\n if ((this._val === '' && this.fieldSizeLimit === 0) ||\n (this._bytesVal = this._val.length) === this.fieldSizeLimit) {\n // yep, we actually did hit the limit\n this._checkingBytes = false\n this._valTrunc = true\n }\n } else {\n if (p < len) { this._val += this.decoder.write(data.toString('binary', p)) }\n p = len\n }\n }\n }\n cb()\n}\n\nUrlEncoded.prototype.end = function () {\n if (this.boy._done) { return }\n\n if (this._state === 'key' && this._key.length > 0) {\n this.boy.emit('field', decodeText(this._key, 'binary', this.charset),\n '',\n this._keyTrunc,\n false)\n } else if (this._state === 'val') {\n this.boy.emit('field', decodeText(this._key, 'binary', this.charset),\n decodeText(this._val, 'binary', this.charset),\n this._keyTrunc,\n this._valTrunc)\n }\n this.boy._done = true\n this.boy.emit('finish')\n}\n\nmodule.exports = UrlEncoded\n","'use strict'\n\nconst WritableStream = require('node:stream').Writable\nconst { inherits } = require('node:util')\nconst Dicer = require('../deps/dicer/lib/Dicer')\n\nconst MultipartParser = require('./types/multipart')\nconst UrlencodedParser = require('./types/urlencoded')\nconst parseParams = require('./utils/parseParams')\n\nfunction Busboy (opts) {\n if (!(this instanceof Busboy)) { return new Busboy(opts) }\n\n if (typeof opts !== 'object') {\n throw new TypeError('Busboy expected an options-Object.')\n }\n if (typeof opts.headers !== 'object') {\n throw new TypeError('Busboy expected an options-Object with headers-attribute.')\n }\n if (typeof opts.headers['content-type'] !== 'string') {\n throw new TypeError('Missing Content-Type-header.')\n }\n\n const {\n headers,\n ...streamOptions\n } = opts\n\n this.opts = {\n autoDestroy: false,\n ...streamOptions\n }\n WritableStream.call(this, this.opts)\n\n this._done = false\n this._parser = this.getParserByHeaders(headers)\n this._finished = false\n}\ninherits(Busboy, WritableStream)\n\nBusboy.prototype.emit = function (ev) {\n if (ev === 'finish') {\n if (!this._done) {\n this._parser?.end()\n return\n } else if (this._finished) {\n return\n }\n this._finished = true\n }\n WritableStream.prototype.emit.apply(this, arguments)\n}\n\nBusboy.prototype.getParserByHeaders = function (headers) {\n const parsed = parseParams(headers['content-type'])\n\n const cfg = {\n defCharset: this.opts.defCharset,\n fileHwm: this.opts.fileHwm,\n headers,\n highWaterMark: this.opts.highWaterMark,\n isPartAFile: this.opts.isPartAFile,\n limits: this.opts.limits,\n parsedConType: parsed,\n preservePath: this.opts.preservePath\n }\n\n if (MultipartParser.detect.test(parsed[0])) {\n return new MultipartParser(this, cfg)\n }\n if (UrlencodedParser.detect.test(parsed[0])) {\n return new UrlencodedParser(this, cfg)\n }\n throw new Error('Unsupported Content-Type.')\n}\n\nBusboy.prototype._write = function (chunk, encoding, cb) {\n this._parser.write(chunk, cb)\n}\n\nmodule.exports = Busboy\nmodule.exports.default = Busboy\nmodule.exports.Busboy = Busboy\n\nmodule.exports.Dicer = Dicer\n","'use strict'\n\nconst { MessageChannel, receiveMessageOnPort } = require('worker_threads')\n\nconst corsSafeListedMethods = ['GET', 'HEAD', 'POST']\nconst corsSafeListedMethodsSet = new Set(corsSafeListedMethods)\n\nconst nullBodyStatus = [101, 204, 205, 304]\n\nconst redirectStatus = [301, 302, 303, 307, 308]\nconst redirectStatusSet = new Set(redirectStatus)\n\n// https://fetch.spec.whatwg.org/#block-bad-port\nconst badPorts = [\n '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79',\n '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137',\n '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532',\n '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723',\n '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697',\n '10080'\n]\n\nconst badPortsSet = new Set(badPorts)\n\n// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies\nconst referrerPolicy = [\n '',\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'same-origin',\n 'origin',\n 'strict-origin',\n 'origin-when-cross-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url'\n]\nconst referrerPolicySet = new Set(referrerPolicy)\n\nconst requestRedirect = ['follow', 'manual', 'error']\n\nconst safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE']\nconst safeMethodsSet = new Set(safeMethods)\n\nconst requestMode = ['navigate', 'same-origin', 'no-cors', 'cors']\n\nconst requestCredentials = ['omit', 'same-origin', 'include']\n\nconst requestCache = [\n 'default',\n 'no-store',\n 'reload',\n 'no-cache',\n 'force-cache',\n 'only-if-cached'\n]\n\n// https://fetch.spec.whatwg.org/#request-body-header-name\nconst requestBodyHeader = [\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-type',\n // See https://github.com/nodejs/undici/issues/2021\n // 'Content-Length' is a forbidden header name, which is typically\n // removed in the Headers implementation. However, undici doesn't\n // filter out headers, so we add it here.\n 'content-length'\n]\n\n// https://fetch.spec.whatwg.org/#enumdef-requestduplex\nconst requestDuplex = [\n 'half'\n]\n\n// http://fetch.spec.whatwg.org/#forbidden-method\nconst forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK']\nconst forbiddenMethodsSet = new Set(forbiddenMethods)\n\nconst subresource = [\n 'audio',\n 'audioworklet',\n 'font',\n 'image',\n 'manifest',\n 'paintworklet',\n 'script',\n 'style',\n 'track',\n 'video',\n 'xslt',\n ''\n]\nconst subresourceSet = new Set(subresource)\n\n/** @type {globalThis['DOMException']} */\nconst DOMException = globalThis.DOMException ?? (() => {\n // DOMException was only made a global in Node v17.0.0,\n // but fetch supports >= v16.8.\n try {\n atob('~')\n } catch (err) {\n return Object.getPrototypeOf(err).constructor\n }\n})()\n\nlet channel\n\n/** @type {globalThis['structuredClone']} */\nconst structuredClone =\n globalThis.structuredClone ??\n // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js\n // structuredClone was added in v17.0.0, but fetch supports v16.8\n function structuredClone (value, options = undefined) {\n if (arguments.length === 0) {\n throw new TypeError('missing argument')\n }\n\n if (!channel) {\n channel = new MessageChannel()\n }\n channel.port1.unref()\n channel.port2.unref()\n channel.port1.postMessage(value, options?.transfer)\n return receiveMessageOnPort(channel.port2).message\n }\n\nmodule.exports = {\n DOMException,\n structuredClone,\n subresource,\n forbiddenMethods,\n requestBodyHeader,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n redirectStatus,\n corsSafeListedMethods,\n nullBodyStatus,\n safeMethods,\n badPorts,\n requestDuplex,\n subresourceSet,\n badPortsSet,\n redirectStatusSet,\n corsSafeListedMethodsSet,\n safeMethodsSet,\n forbiddenMethodsSet,\n referrerPolicySet\n}\n","'use strict'\n\n// In case of breaking changes, increase the version\n// number to avoid conflicts.\nconst globalOrigin = Symbol.for('undici.globalOrigin.1')\n\nfunction getGlobalOrigin () {\n return globalThis[globalOrigin]\n}\n\nfunction setGlobalOrigin (newOrigin) {\n if (newOrigin === undefined) {\n Object.defineProperty(globalThis, globalOrigin, {\n value: undefined,\n writable: true,\n enumerable: false,\n configurable: false\n })\n\n return\n }\n\n const parsedURL = new URL(newOrigin)\n\n if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {\n throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)\n }\n\n Object.defineProperty(globalThis, globalOrigin, {\n value: parsedURL,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nmodule.exports = {\n getGlobalOrigin,\n setGlobalOrigin\n}\n","'use strict'\n\nconst { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = require('./constants')\nconst { getGlobalOrigin } = require('./global')\nconst { performance } = require('perf_hooks')\nconst { isBlobLike, toUSVString, ReadableStreamFrom } = require('../core/util')\nconst assert = require('assert')\nconst { isUint8Array } = require('util/types')\n\nlet supportedHashes = []\n\n// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable\n/** @type {import('crypto')|undefined} */\nlet crypto\n\ntry {\n crypto = require('crypto')\n const possibleRelevantHashes = ['sha256', 'sha384', 'sha512']\n supportedHashes = crypto.getHashes().filter((hash) => possibleRelevantHashes.includes(hash))\n/* c8 ignore next 3 */\n} catch {\n}\n\nfunction responseURL (response) {\n // https://fetch.spec.whatwg.org/#responses\n // A response has an associated URL. It is a pointer to the last URL\n // in response’s URL list and null if response’s URL list is empty.\n const urlList = response.urlList\n const length = urlList.length\n return length === 0 ? null : urlList[length - 1].toString()\n}\n\n// https://fetch.spec.whatwg.org/#concept-response-location-url\nfunction responseLocationURL (response, requestFragment) {\n // 1. If response’s status is not a redirect status, then return null.\n if (!redirectStatusSet.has(response.status)) {\n return null\n }\n\n // 2. Let location be the result of extracting header list values given\n // `Location` and response’s header list.\n let location = response.headersList.get('location')\n\n // 3. If location is a header value, then set location to the result of\n // parsing location with response’s URL.\n if (location !== null && isValidHeaderValue(location)) {\n location = new URL(location, responseURL(response))\n }\n\n // 4. If location is a URL whose fragment is null, then set location’s\n // fragment to requestFragment.\n if (location && !location.hash) {\n location.hash = requestFragment\n }\n\n // 5. Return location.\n return location\n}\n\n/** @returns {URL} */\nfunction requestCurrentURL (request) {\n return request.urlList[request.urlList.length - 1]\n}\n\nfunction requestBadPort (request) {\n // 1. Let url be request’s current URL.\n const url = requestCurrentURL(request)\n\n // 2. If url’s scheme is an HTTP(S) scheme and url’s port is a bad port,\n // then return blocked.\n if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) {\n return 'blocked'\n }\n\n // 3. Return allowed.\n return 'allowed'\n}\n\nfunction isErrorLike (object) {\n return object instanceof Error || (\n object?.constructor?.name === 'Error' ||\n object?.constructor?.name === 'DOMException'\n )\n}\n\n// Check whether |statusText| is a ByteString and\n// matches the Reason-Phrase token production.\n// RFC 2616: https://tools.ietf.org/html/rfc2616\n// RFC 7230: https://tools.ietf.org/html/rfc7230\n// \"reason-phrase = *( HTAB / SP / VCHAR / obs-text )\"\n// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116\nfunction isValidReasonPhrase (statusText) {\n for (let i = 0; i < statusText.length; ++i) {\n const c = statusText.charCodeAt(i)\n if (\n !(\n (\n c === 0x09 || // HTAB\n (c >= 0x20 && c <= 0x7e) || // SP / VCHAR\n (c >= 0x80 && c <= 0xff)\n ) // obs-text\n )\n ) {\n return false\n }\n }\n return true\n}\n\n/**\n * @see https://tools.ietf.org/html/rfc7230#section-3.2.6\n * @param {number} c\n */\nfunction isTokenCharCode (c) {\n switch (c) {\n case 0x22:\n case 0x28:\n case 0x29:\n case 0x2c:\n case 0x2f:\n case 0x3a:\n case 0x3b:\n case 0x3c:\n case 0x3d:\n case 0x3e:\n case 0x3f:\n case 0x40:\n case 0x5b:\n case 0x5c:\n case 0x5d:\n case 0x7b:\n case 0x7d:\n // DQUOTE and \"(),/:;<=>?@[\\]{}\"\n return false\n default:\n // VCHAR %x21-7E\n return c >= 0x21 && c <= 0x7e\n }\n}\n\n/**\n * @param {string} characters\n */\nfunction isValidHTTPToken (characters) {\n if (characters.length === 0) {\n return false\n }\n for (let i = 0; i < characters.length; ++i) {\n if (!isTokenCharCode(characters.charCodeAt(i))) {\n return false\n }\n }\n return true\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-name\n * @param {string} potentialValue\n */\nfunction isValidHeaderName (potentialValue) {\n return isValidHTTPToken(potentialValue)\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-value\n * @param {string} potentialValue\n */\nfunction isValidHeaderValue (potentialValue) {\n // - Has no leading or trailing HTTP tab or space bytes.\n // - Contains no 0x00 (NUL) or HTTP newline bytes.\n if (\n potentialValue.startsWith('\\t') ||\n potentialValue.startsWith(' ') ||\n potentialValue.endsWith('\\t') ||\n potentialValue.endsWith(' ')\n ) {\n return false\n }\n\n if (\n potentialValue.includes('\\0') ||\n potentialValue.includes('\\r') ||\n potentialValue.includes('\\n')\n ) {\n return false\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect\nfunction setRequestReferrerPolicyOnRedirect (request, actualResponse) {\n // Given a request request and a response actualResponse, this algorithm\n // updates request’s referrer policy according to the Referrer-Policy\n // header (if any) in actualResponse.\n\n // 1. Let policy be the result of executing § 8.1 Parse a referrer policy\n // from a Referrer-Policy header on actualResponse.\n\n // 8.1 Parse a referrer policy from a Referrer-Policy header\n // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response’s header list.\n const { headersList } = actualResponse\n // 2. Let policy be the empty string.\n // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token.\n // 4. Return policy.\n const policyHeader = (headersList.get('referrer-policy') ?? '').split(',')\n\n // Note: As the referrer-policy can contain multiple policies\n // separated by comma, we need to loop through all of them\n // and pick the first valid one.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy\n let policy = ''\n if (policyHeader.length > 0) {\n // The right-most policy takes precedence.\n // The left-most policy is the fallback.\n for (let i = policyHeader.length; i !== 0; i--) {\n const token = policyHeader[i - 1].trim()\n if (referrerPolicyTokens.has(token)) {\n policy = token\n break\n }\n }\n }\n\n // 2. If policy is not the empty string, then set request’s referrer policy to policy.\n if (policy !== '') {\n request.referrerPolicy = policy\n }\n}\n\n// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check\nfunction crossOriginResourcePolicyCheck () {\n // TODO\n return 'allowed'\n}\n\n// https://fetch.spec.whatwg.org/#concept-cors-check\nfunction corsCheck () {\n // TODO\n return 'success'\n}\n\n// https://fetch.spec.whatwg.org/#concept-tao-check\nfunction TAOCheck () {\n // TODO\n return 'success'\n}\n\nfunction appendFetchMetadata (httpRequest) {\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header\n\n // 1. Assert: r’s url is a potentially trustworthy URL.\n // TODO\n\n // 2. Let header be a Structured Header whose value is a token.\n let header = null\n\n // 3. Set header’s value to r’s mode.\n header = httpRequest.mode\n\n // 4. Set a structured field value `Sec-Fetch-Mode`/header in r’s header list.\n httpRequest.headersList.set('sec-fetch-mode', header)\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header\n // TODO\n}\n\n// https://fetch.spec.whatwg.org/#append-a-request-origin-header\nfunction appendRequestOriginHeader (request) {\n // 1. Let serializedOrigin be the result of byte-serializing a request origin with request.\n let serializedOrigin = request.origin\n\n // 2. If request’s response tainting is \"cors\" or request’s mode is \"websocket\", then append (`Origin`, serializedOrigin) to request’s header list.\n if (request.responseTainting === 'cors' || request.mode === 'websocket') {\n if (serializedOrigin) {\n request.headersList.append('origin', serializedOrigin)\n }\n\n // 3. Otherwise, if request’s method is neither `GET` nor `HEAD`, then:\n } else if (request.method !== 'GET' && request.method !== 'HEAD') {\n // 1. Switch on request’s referrer policy:\n switch (request.referrerPolicy) {\n case 'no-referrer':\n // Set serializedOrigin to `null`.\n serializedOrigin = null\n break\n case 'no-referrer-when-downgrade':\n case 'strict-origin':\n case 'strict-origin-when-cross-origin':\n // If request’s origin is a tuple origin, its scheme is \"https\", and request’s current URL’s scheme is not \"https\", then set serializedOrigin to `null`.\n if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n case 'same-origin':\n // If request’s origin is not same origin with request’s current URL’s origin, then set serializedOrigin to `null`.\n if (!sameOrigin(request, requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n default:\n // Do nothing.\n }\n\n if (serializedOrigin) {\n // 2. Append (`Origin`, serializedOrigin) to request’s header list.\n request.headersList.append('origin', serializedOrigin)\n }\n }\n}\n\nfunction coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {\n // TODO\n return performance.now()\n}\n\n// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info\nfunction createOpaqueTimingInfo (timingInfo) {\n return {\n startTime: timingInfo.startTime ?? 0,\n redirectStartTime: 0,\n redirectEndTime: 0,\n postRedirectStartTime: timingInfo.startTime ?? 0,\n finalServiceWorkerStartTime: 0,\n finalNetworkResponseStartTime: 0,\n finalNetworkRequestStartTime: 0,\n endTime: 0,\n encodedBodySize: 0,\n decodedBodySize: 0,\n finalConnectionTimingInfo: null\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#policy-container\nfunction makePolicyContainer () {\n // Note: the fetch spec doesn't make use of embedder policy or CSP list\n return {\n referrerPolicy: 'strict-origin-when-cross-origin'\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container\nfunction clonePolicyContainer (policyContainer) {\n return {\n referrerPolicy: policyContainer.referrerPolicy\n }\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer\nfunction determineRequestsReferrer (request) {\n // 1. Let policy be request's referrer policy.\n const policy = request.referrerPolicy\n\n // Note: policy cannot (shouldn't) be null or an empty string.\n assert(policy)\n\n // 2. Let environment be request’s client.\n\n let referrerSource = null\n\n // 3. Switch on request’s referrer:\n if (request.referrer === 'client') {\n // Note: node isn't a browser and doesn't implement document/iframes,\n // so we bypass this step and replace it with our own.\n\n const globalOrigin = getGlobalOrigin()\n\n if (!globalOrigin || globalOrigin.origin === 'null') {\n return 'no-referrer'\n }\n\n // note: we need to clone it as it's mutated\n referrerSource = new URL(globalOrigin)\n } else if (request.referrer instanceof URL) {\n // Let referrerSource be request’s referrer.\n referrerSource = request.referrer\n }\n\n // 4. Let request’s referrerURL be the result of stripping referrerSource for\n // use as a referrer.\n let referrerURL = stripURLForReferrer(referrerSource)\n\n // 5. Let referrerOrigin be the result of stripping referrerSource for use as\n // a referrer, with the origin-only flag set to true.\n const referrerOrigin = stripURLForReferrer(referrerSource, true)\n\n // 6. If the result of serializing referrerURL is a string whose length is\n // greater than 4096, set referrerURL to referrerOrigin.\n if (referrerURL.toString().length > 4096) {\n referrerURL = referrerOrigin\n }\n\n const areSameOrigin = sameOrigin(request, referrerURL)\n const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) &&\n !isURLPotentiallyTrustworthy(request.url)\n\n // 8. Execute the switch statements corresponding to the value of policy:\n switch (policy) {\n case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)\n case 'unsafe-url': return referrerURL\n case 'same-origin':\n return areSameOrigin ? referrerOrigin : 'no-referrer'\n case 'origin-when-cross-origin':\n return areSameOrigin ? referrerURL : referrerOrigin\n case 'strict-origin-when-cross-origin': {\n const currentURL = requestCurrentURL(request)\n\n // 1. If the origin of referrerURL and the origin of request’s current\n // URL are the same, then return referrerURL.\n if (sameOrigin(referrerURL, currentURL)) {\n return referrerURL\n }\n\n // 2. If referrerURL is a potentially trustworthy URL and request’s\n // current URL is not a potentially trustworthy URL, then return no\n // referrer.\n if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {\n return 'no-referrer'\n }\n\n // 3. Return referrerOrigin.\n return referrerOrigin\n }\n case 'strict-origin': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request’s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n case 'no-referrer-when-downgrade': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request’s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n\n default: // eslint-disable-line\n return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url\n * @param {URL} url\n * @param {boolean|undefined} originOnly\n */\nfunction stripURLForReferrer (url, originOnly) {\n // 1. Assert: url is a URL.\n assert(url instanceof URL)\n\n // 2. If url’s scheme is a local scheme, then return no referrer.\n if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') {\n return 'no-referrer'\n }\n\n // 3. Set url’s username to the empty string.\n url.username = ''\n\n // 4. Set url’s password to the empty string.\n url.password = ''\n\n // 5. Set url’s fragment to null.\n url.hash = ''\n\n // 6. If the origin-only flag is true, then:\n if (originOnly) {\n // 1. Set url’s path to « the empty string ».\n url.pathname = ''\n\n // 2. Set url’s query to null.\n url.search = ''\n }\n\n // 7. Return url.\n return url\n}\n\nfunction isURLPotentiallyTrustworthy (url) {\n if (!(url instanceof URL)) {\n return false\n }\n\n // If child of about, return true\n if (url.href === 'about:blank' || url.href === 'about:srcdoc') {\n return true\n }\n\n // If scheme is data, return true\n if (url.protocol === 'data:') return true\n\n // If file, return true\n if (url.protocol === 'file:') return true\n\n return isOriginPotentiallyTrustworthy(url.origin)\n\n function isOriginPotentiallyTrustworthy (origin) {\n // If origin is explicitly null, return false\n if (origin == null || origin === 'null') return false\n\n const originAsURL = new URL(origin)\n\n // If secure, return true\n if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {\n return true\n }\n\n // If localhost or variants, return true\n if (/^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^\\[(?:0*:)*?:?0*1\\]$/.test(originAsURL.hostname) ||\n (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||\n (originAsURL.hostname.endsWith('.localhost'))) {\n return true\n }\n\n // If any other, return false\n return false\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist\n * @param {Uint8Array} bytes\n * @param {string} metadataList\n */\nfunction bytesMatch (bytes, metadataList) {\n // If node is not built with OpenSSL support, we cannot check\n // a request's integrity, so allow it by default (the spec will\n // allow requests if an invalid hash is given, as precedence).\n /* istanbul ignore if: only if node is built with --without-ssl */\n if (crypto === undefined) {\n return true\n }\n\n // 1. Let parsedMetadata be the result of parsing metadataList.\n const parsedMetadata = parseMetadata(metadataList)\n\n // 2. If parsedMetadata is no metadata, return true.\n if (parsedMetadata === 'no metadata') {\n return true\n }\n\n // 3. If response is not eligible for integrity validation, return false.\n // TODO\n\n // 4. If parsedMetadata is the empty set, return true.\n if (parsedMetadata.length === 0) {\n return true\n }\n\n // 5. Let metadata be the result of getting the strongest\n // metadata from parsedMetadata.\n const strongest = getStrongestMetadata(parsedMetadata)\n const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest)\n\n // 6. For each item in metadata:\n for (const item of metadata) {\n // 1. Let algorithm be the alg component of item.\n const algorithm = item.algo\n\n // 2. Let expectedValue be the val component of item.\n const expectedValue = item.hash\n\n // See https://github.com/web-platform-tests/wpt/commit/e4c5cc7a5e48093220528dfdd1c4012dc3837a0e\n // \"be liberal with padding\". This is annoying, and it's not even in the spec.\n\n // 3. Let actualValue be the result of applying algorithm to bytes.\n let actualValue = crypto.createHash(algorithm).update(bytes).digest('base64')\n\n if (actualValue[actualValue.length - 1] === '=') {\n if (actualValue[actualValue.length - 2] === '=') {\n actualValue = actualValue.slice(0, -2)\n } else {\n actualValue = actualValue.slice(0, -1)\n }\n }\n\n // 4. If actualValue is a case-sensitive match for expectedValue,\n // return true.\n if (compareBase64Mixed(actualValue, expectedValue)) {\n return true\n }\n }\n\n // 7. Return false.\n return false\n}\n\n// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options\n// https://www.w3.org/TR/CSP2/#source-list-syntax\n// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1\nconst parseHashWithOptions = /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\\s|$)( +[!-~]*)?)?/i\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n * @param {string} metadata\n */\nfunction parseMetadata (metadata) {\n // 1. Let result be the empty set.\n /** @type {{ algo: string, hash: string }[]} */\n const result = []\n\n // 2. Let empty be equal to true.\n let empty = true\n\n // 3. For each token returned by splitting metadata on spaces:\n for (const token of metadata.split(' ')) {\n // 1. Set empty to false.\n empty = false\n\n // 2. Parse token as a hash-with-options.\n const parsedToken = parseHashWithOptions.exec(token)\n\n // 3. If token does not parse, continue to the next token.\n if (\n parsedToken === null ||\n parsedToken.groups === undefined ||\n parsedToken.groups.algo === undefined\n ) {\n // Note: Chromium blocks the request at this point, but Firefox\n // gives a warning that an invalid integrity was given. The\n // correct behavior is to ignore these, and subsequently not\n // check the integrity of the resource.\n continue\n }\n\n // 4. Let algorithm be the hash-algo component of token.\n const algorithm = parsedToken.groups.algo.toLowerCase()\n\n // 5. If algorithm is a hash function recognized by the user\n // agent, add the parsed token to result.\n if (supportedHashes.includes(algorithm)) {\n result.push(parsedToken.groups)\n }\n }\n\n // 4. Return no metadata if empty is true, otherwise return result.\n if (empty === true) {\n return 'no metadata'\n }\n\n return result\n}\n\n/**\n * @param {{ algo: 'sha256' | 'sha384' | 'sha512' }[]} metadataList\n */\nfunction getStrongestMetadata (metadataList) {\n // Let algorithm be the algo component of the first item in metadataList.\n // Can be sha256\n let algorithm = metadataList[0].algo\n // If the algorithm is sha512, then it is the strongest\n // and we can return immediately\n if (algorithm[3] === '5') {\n return algorithm\n }\n\n for (let i = 1; i < metadataList.length; ++i) {\n const metadata = metadataList[i]\n // If the algorithm is sha512, then it is the strongest\n // and we can break the loop immediately\n if (metadata.algo[3] === '5') {\n algorithm = 'sha512'\n break\n // If the algorithm is sha384, then a potential sha256 or sha384 is ignored\n } else if (algorithm[3] === '3') {\n continue\n // algorithm is sha256, check if algorithm is sha384 and if so, set it as\n // the strongest\n } else if (metadata.algo[3] === '3') {\n algorithm = 'sha384'\n }\n }\n return algorithm\n}\n\nfunction filterMetadataListByAlgorithm (metadataList, algorithm) {\n if (metadataList.length === 1) {\n return metadataList\n }\n\n let pos = 0\n for (let i = 0; i < metadataList.length; ++i) {\n if (metadataList[i].algo === algorithm) {\n metadataList[pos++] = metadataList[i]\n }\n }\n\n metadataList.length = pos\n\n return metadataList\n}\n\n/**\n * Compares two base64 strings, allowing for base64url\n * in the second string.\n *\n* @param {string} actualValue always base64\n * @param {string} expectedValue base64 or base64url\n * @returns {boolean}\n */\nfunction compareBase64Mixed (actualValue, expectedValue) {\n if (actualValue.length !== expectedValue.length) {\n return false\n }\n for (let i = 0; i < actualValue.length; ++i) {\n if (actualValue[i] !== expectedValue[i]) {\n if (\n (actualValue[i] === '+' && expectedValue[i] === '-') ||\n (actualValue[i] === '/' && expectedValue[i] === '_')\n ) {\n continue\n }\n return false\n }\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request\nfunction tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {\n // TODO\n}\n\n/**\n * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}\n * @param {URL} A\n * @param {URL} B\n */\nfunction sameOrigin (A, B) {\n // 1. If A and B are the same opaque origin, then return true.\n if (A.origin === B.origin && A.origin === 'null') {\n return true\n }\n\n // 2. If A and B are both tuple origins and their schemes,\n // hosts, and port are identical, then return true.\n if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {\n return true\n }\n\n // 3. Return false.\n return false\n}\n\nfunction createDeferredPromise () {\n let res\n let rej\n const promise = new Promise((resolve, reject) => {\n res = resolve\n rej = reject\n })\n\n return { promise, resolve: res, reject: rej }\n}\n\nfunction isAborted (fetchParams) {\n return fetchParams.controller.state === 'aborted'\n}\n\nfunction isCancelled (fetchParams) {\n return fetchParams.controller.state === 'aborted' ||\n fetchParams.controller.state === 'terminated'\n}\n\nconst normalizeMethodRecord = {\n delete: 'DELETE',\n DELETE: 'DELETE',\n get: 'GET',\n GET: 'GET',\n head: 'HEAD',\n HEAD: 'HEAD',\n options: 'OPTIONS',\n OPTIONS: 'OPTIONS',\n post: 'POST',\n POST: 'POST',\n put: 'PUT',\n PUT: 'PUT'\n}\n\n// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`.\nObject.setPrototypeOf(normalizeMethodRecord, null)\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-method-normalize\n * @param {string} method\n */\nfunction normalizeMethod (method) {\n return normalizeMethodRecord[method.toLowerCase()] ?? method\n}\n\n// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string\nfunction serializeJavascriptValueToJSONString (value) {\n // 1. Let result be ? Call(%JSON.stringify%, undefined, « value »).\n const result = JSON.stringify(value)\n\n // 2. If result is undefined, then throw a TypeError.\n if (result === undefined) {\n throw new TypeError('Value is not JSON serializable')\n }\n\n // 3. Assert: result is a string.\n assert(typeof result === 'string')\n\n // 4. Return result.\n return result\n}\n\n// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object\nconst esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))\n\n/**\n * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object\n * @param {() => unknown[]} iterator\n * @param {string} name name of the instance\n * @param {'key'|'value'|'key+value'} kind\n */\nfunction makeIterator (iterator, name, kind) {\n const object = {\n index: 0,\n kind,\n target: iterator\n }\n\n const i = {\n next () {\n // 1. Let interface be the interface for which the iterator prototype object exists.\n\n // 2. Let thisValue be the this value.\n\n // 3. Let object be ? ToObject(thisValue).\n\n // 4. If object is a platform object, then perform a security\n // check, passing:\n\n // 5. If object is not a default iterator object for interface,\n // then throw a TypeError.\n if (Object.getPrototypeOf(this) !== i) {\n throw new TypeError(\n `'next' called on an object that does not implement interface ${name} Iterator.`\n )\n }\n\n // 6. Let index be object’s index.\n // 7. Let kind be object’s kind.\n // 8. Let values be object’s target's value pairs to iterate over.\n const { index, kind, target } = object\n const values = target()\n\n // 9. Let len be the length of values.\n const len = values.length\n\n // 10. If index is greater than or equal to len, then return\n // CreateIterResultObject(undefined, true).\n if (index >= len) {\n return { value: undefined, done: true }\n }\n\n // 11. Let pair be the entry in values at index index.\n const pair = values[index]\n\n // 12. Set object’s index to index + 1.\n object.index = index + 1\n\n // 13. Return the iterator result for pair and kind.\n return iteratorResult(pair, kind)\n },\n // The class string of an iterator prototype object for a given interface is the\n // result of concatenating the identifier of the interface and the string \" Iterator\".\n [Symbol.toStringTag]: `${name} Iterator`\n }\n\n // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.\n Object.setPrototypeOf(i, esIteratorPrototype)\n // esIteratorPrototype needs to be the prototype of i\n // which is the prototype of an empty object. Yes, it's confusing.\n return Object.setPrototypeOf({}, i)\n}\n\n// https://webidl.spec.whatwg.org/#iterator-result\nfunction iteratorResult (pair, kind) {\n let result\n\n // 1. Let result be a value determined by the value of kind:\n switch (kind) {\n case 'key': {\n // 1. Let idlKey be pair’s key.\n // 2. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 3. result is key.\n result = pair[0]\n break\n }\n case 'value': {\n // 1. Let idlValue be pair’s value.\n // 2. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 3. result is value.\n result = pair[1]\n break\n }\n case 'key+value': {\n // 1. Let idlKey be pair’s key.\n // 2. Let idlValue be pair’s value.\n // 3. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 4. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 5. Let array be ! ArrayCreate(2).\n // 6. Call ! CreateDataProperty(array, \"0\", key).\n // 7. Call ! CreateDataProperty(array, \"1\", value).\n // 8. result is array.\n result = pair\n break\n }\n }\n\n // 2. Return CreateIterResultObject(result, false).\n return { value: result, done: false }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#body-fully-read\n */\nasync function fullyReadBody (body, processBody, processBodyError) {\n // 1. If taskDestination is null, then set taskDestination to\n // the result of starting a new parallel queue.\n\n // 2. Let successSteps given a byte sequence bytes be to queue a\n // fetch task to run processBody given bytes, with taskDestination.\n const successSteps = processBody\n\n // 3. Let errorSteps be to queue a fetch task to run processBodyError,\n // with taskDestination.\n const errorSteps = processBodyError\n\n // 4. Let reader be the result of getting a reader for body’s stream.\n // If that threw an exception, then run errorSteps with that\n // exception and return.\n let reader\n\n try {\n reader = body.stream.getReader()\n } catch (e) {\n errorSteps(e)\n return\n }\n\n // 5. Read all bytes from reader, given successSteps and errorSteps.\n try {\n const result = await readAllBytes(reader)\n successSteps(result)\n } catch (e) {\n errorSteps(e)\n }\n}\n\n/** @type {ReadableStream} */\nlet ReadableStream = globalThis.ReadableStream\n\nfunction isReadableStreamLike (stream) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n return stream instanceof ReadableStream || (\n stream[Symbol.toStringTag] === 'ReadableStream' &&\n typeof stream.tee === 'function'\n )\n}\n\nconst MAXIMUM_ARGUMENT_LENGTH = 65535\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-decode\n * @param {number[]|Uint8Array} input\n */\nfunction isomorphicDecode (input) {\n // 1. To isomorphic decode a byte sequence input, return a string whose code point\n // length is equal to input’s length and whose code points have the same values\n // as the values of input’s bytes, in the same order.\n\n if (input.length < MAXIMUM_ARGUMENT_LENGTH) {\n return String.fromCharCode(...input)\n }\n\n return input.reduce((previous, current) => previous + String.fromCharCode(current), '')\n}\n\n/**\n * @param {ReadableStreamController} controller\n */\nfunction readableStreamClose (controller) {\n try {\n controller.close()\n } catch (err) {\n // TODO: add comment explaining why this error occurs.\n if (!err.message.includes('Controller is already closed')) {\n throw err\n }\n }\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-encode\n * @param {string} input\n */\nfunction isomorphicEncode (input) {\n // 1. Assert: input contains no code points greater than U+00FF.\n for (let i = 0; i < input.length; i++) {\n assert(input.charCodeAt(i) <= 0xFF)\n }\n\n // 2. Return a byte sequence whose length is equal to input’s code\n // point length and whose bytes have the same values as the\n // values of input’s code points, in the same order\n return input\n}\n\n/**\n * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes\n * @see https://streams.spec.whatwg.org/#read-loop\n * @param {ReadableStreamDefaultReader} reader\n */\nasync function readAllBytes (reader) {\n const bytes = []\n let byteLength = 0\n\n while (true) {\n const { done, value: chunk } = await reader.read()\n\n if (done) {\n // 1. Call successSteps with bytes.\n return Buffer.concat(bytes, byteLength)\n }\n\n // 1. If chunk is not a Uint8Array object, call failureSteps\n // with a TypeError and abort these steps.\n if (!isUint8Array(chunk)) {\n throw new TypeError('Received non-Uint8Array chunk')\n }\n\n // 2. Append the bytes represented by chunk to bytes.\n bytes.push(chunk)\n byteLength += chunk.length\n\n // 3. Read-loop given reader, bytes, successSteps, and failureSteps.\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#is-local\n * @param {URL} url\n */\nfunction urlIsLocal (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:'\n}\n\n/**\n * @param {string|URL} url\n */\nfunction urlHasHttpsScheme (url) {\n if (typeof url === 'string') {\n return url.startsWith('https:')\n }\n\n return url.protocol === 'https:'\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-scheme\n * @param {URL} url\n */\nfunction urlIsHttpHttpsScheme (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'http:' || protocol === 'https:'\n}\n\n/**\n * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0.\n */\nconst hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key))\n\nmodule.exports = {\n isAborted,\n isCancelled,\n createDeferredPromise,\n ReadableStreamFrom,\n toUSVString,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n coarsenedSharedCurrentTime,\n determineRequestsReferrer,\n makePolicyContainer,\n clonePolicyContainer,\n appendFetchMetadata,\n appendRequestOriginHeader,\n TAOCheck,\n corsCheck,\n crossOriginResourcePolicyCheck,\n createOpaqueTimingInfo,\n setRequestReferrerPolicyOnRedirect,\n isValidHTTPToken,\n requestBadPort,\n requestCurrentURL,\n responseURL,\n responseLocationURL,\n isBlobLike,\n isURLPotentiallyTrustworthy,\n isValidReasonPhrase,\n sameOrigin,\n normalizeMethod,\n serializeJavascriptValueToJSONString,\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue,\n hasOwn,\n isErrorLike,\n fullyReadBody,\n bytesMatch,\n isReadableStreamLike,\n readableStreamClose,\n isomorphicEncode,\n isomorphicDecode,\n urlIsLocal,\n urlHasHttpsScheme,\n urlIsHttpHttpsScheme,\n readAllBytes,\n normalizeMethodRecord,\n parseMetadata\n}\n","'use strict'\n\nmodule.exports = {\n kUrl: Symbol('url'),\n kHeaders: Symbol('headers'),\n kSignal: Symbol('signal'),\n kState: Symbol('state'),\n kGuard: Symbol('guard'),\n kRealm: Symbol('realm')\n}\n","'use strict'\n\nconst { types } = require('util')\nconst { hasOwn, toUSVString } = require('./util')\n\n/** @type {import('../../types/webidl').Webidl} */\nconst webidl = {}\nwebidl.converters = {}\nwebidl.util = {}\nwebidl.errors = {}\n\nwebidl.errors.exception = function (message) {\n return new TypeError(`${message.header}: ${message.message}`)\n}\n\nwebidl.errors.conversionFailed = function (context) {\n const plural = context.types.length === 1 ? '' : ' one of'\n const message =\n `${context.argument} could not be converted to` +\n `${plural}: ${context.types.join(', ')}.`\n\n return webidl.errors.exception({\n header: context.prefix,\n message\n })\n}\n\nwebidl.errors.invalidArgument = function (context) {\n return webidl.errors.exception({\n header: context.prefix,\n message: `\"${context.value}\" is an invalid ${context.type}.`\n })\n}\n\n// https://webidl.spec.whatwg.org/#implements\nwebidl.brandCheck = function (V, I, opts = undefined) {\n if (opts?.strict !== false && !(V instanceof I)) {\n throw new TypeError('Illegal invocation')\n } else {\n return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]\n }\n}\n\nwebidl.argumentLengthCheck = function ({ length }, min, ctx) {\n if (length < min) {\n throw webidl.errors.exception({\n message: `${min} argument${min !== 1 ? 's' : ''} required, ` +\n `but${length ? ' only' : ''} ${length} found.`,\n ...ctx\n })\n }\n}\n\nwebidl.illegalConstructor = function () {\n throw webidl.errors.exception({\n header: 'TypeError',\n message: 'Illegal constructor'\n })\n}\n\n// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values\nwebidl.util.Type = function (V) {\n switch (typeof V) {\n case 'undefined': return 'Undefined'\n case 'boolean': return 'Boolean'\n case 'string': return 'String'\n case 'symbol': return 'Symbol'\n case 'number': return 'Number'\n case 'bigint': return 'BigInt'\n case 'function':\n case 'object': {\n if (V === null) {\n return 'Null'\n }\n\n return 'Object'\n }\n }\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint\nwebidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) {\n let upperBound\n let lowerBound\n\n // 1. If bitLength is 64, then:\n if (bitLength === 64) {\n // 1. Let upperBound be 2^53 − 1.\n upperBound = Math.pow(2, 53) - 1\n\n // 2. If signedness is \"unsigned\", then let lowerBound be 0.\n if (signedness === 'unsigned') {\n lowerBound = 0\n } else {\n // 3. Otherwise let lowerBound be −2^53 + 1.\n lowerBound = Math.pow(-2, 53) + 1\n }\n } else if (signedness === 'unsigned') {\n // 2. Otherwise, if signedness is \"unsigned\", then:\n\n // 1. Let lowerBound be 0.\n lowerBound = 0\n\n // 2. Let upperBound be 2^bitLength − 1.\n upperBound = Math.pow(2, bitLength) - 1\n } else {\n // 3. Otherwise:\n\n // 1. Let lowerBound be -2^bitLength − 1.\n lowerBound = Math.pow(-2, bitLength) - 1\n\n // 2. Let upperBound be 2^bitLength − 1 − 1.\n upperBound = Math.pow(2, bitLength - 1) - 1\n }\n\n // 4. Let x be ? ToNumber(V).\n let x = Number(V)\n\n // 5. If x is −0, then set x to +0.\n if (x === 0) {\n x = 0\n }\n\n // 6. If the conversion is to an IDL type associated\n // with the [EnforceRange] extended attribute, then:\n if (opts.enforceRange === true) {\n // 1. If x is NaN, +∞, or −∞, then throw a TypeError.\n if (\n Number.isNaN(x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Could not convert ${V} to an integer.`\n })\n }\n\n // 2. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 3. If x < lowerBound or x > upperBound, then\n // throw a TypeError.\n if (x < lowerBound || x > upperBound) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.`\n })\n }\n\n // 4. Return x.\n return x\n }\n\n // 7. If x is not NaN and the conversion is to an IDL\n // type associated with the [Clamp] extended\n // attribute, then:\n if (!Number.isNaN(x) && opts.clamp === true) {\n // 1. Set x to min(max(x, lowerBound), upperBound).\n x = Math.min(Math.max(x, lowerBound), upperBound)\n\n // 2. Round x to the nearest integer, choosing the\n // even integer if it lies halfway between two,\n // and choosing +0 rather than −0.\n if (Math.floor(x) % 2 === 0) {\n x = Math.floor(x)\n } else {\n x = Math.ceil(x)\n }\n\n // 3. Return x.\n return x\n }\n\n // 8. If x is NaN, +0, +∞, or −∞, then return +0.\n if (\n Number.isNaN(x) ||\n (x === 0 && Object.is(0, x)) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n return 0\n }\n\n // 9. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 10. Set x to x modulo 2^bitLength.\n x = x % Math.pow(2, bitLength)\n\n // 11. If signedness is \"signed\" and x ≥ 2^bitLength − 1,\n // then return x − 2^bitLength.\n if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) {\n return x - Math.pow(2, bitLength)\n }\n\n // 12. Otherwise, return x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart\nwebidl.util.IntegerPart = function (n) {\n // 1. Let r be floor(abs(n)).\n const r = Math.floor(Math.abs(n))\n\n // 2. If n < 0, then return -1 × r.\n if (n < 0) {\n return -1 * r\n }\n\n // 3. Otherwise, return r.\n return r\n}\n\n// https://webidl.spec.whatwg.org/#es-sequence\nwebidl.sequenceConverter = function (converter) {\n return (V) => {\n // 1. If Type(V) is not Object, throw a TypeError.\n if (webidl.util.Type(V) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: `Value of type ${webidl.util.Type(V)} is not an Object.`\n })\n }\n\n // 2. Let method be ? GetMethod(V, @@iterator).\n /** @type {Generator} */\n const method = V?.[Symbol.iterator]?.()\n const seq = []\n\n // 3. If method is undefined, throw a TypeError.\n if (\n method === undefined ||\n typeof method.next !== 'function'\n ) {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: 'Object is not an iterator.'\n })\n }\n\n // https://webidl.spec.whatwg.org/#create-sequence-from-iterable\n while (true) {\n const { done, value } = method.next()\n\n if (done) {\n break\n }\n\n seq.push(converter(value))\n }\n\n return seq\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-to-record\nwebidl.recordConverter = function (keyConverter, valueConverter) {\n return (O) => {\n // 1. If Type(O) is not Object, throw a TypeError.\n if (webidl.util.Type(O) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Record',\n message: `Value of type ${webidl.util.Type(O)} is not an Object.`\n })\n }\n\n // 2. Let result be a new empty instance of record.\n const result = {}\n\n if (!types.isProxy(O)) {\n // Object.keys only returns enumerable properties\n const keys = Object.keys(O)\n\n for (const key of keys) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n\n // 5. Return result.\n return result\n }\n\n // 3. Let keys be ? O.[[OwnPropertyKeys]]().\n const keys = Reflect.ownKeys(O)\n\n // 4. For each key of keys.\n for (const key of keys) {\n // 1. Let desc be ? O.[[GetOwnProperty]](key).\n const desc = Reflect.getOwnPropertyDescriptor(O, key)\n\n // 2. If desc is not undefined and desc.[[Enumerable]] is true:\n if (desc?.enumerable) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n }\n\n // 5. Return result.\n return result\n }\n}\n\nwebidl.interfaceConverter = function (i) {\n return (V, opts = {}) => {\n if (opts.strict !== false && !(V instanceof i)) {\n throw webidl.errors.exception({\n header: i.name,\n message: `Expected ${V} to be an instance of ${i.name}.`\n })\n }\n\n return V\n }\n}\n\nwebidl.dictionaryConverter = function (converters) {\n return (dictionary) => {\n const type = webidl.util.Type(dictionary)\n const dict = {}\n\n if (type === 'Null' || type === 'Undefined') {\n return dict\n } else if (type !== 'Object') {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Expected ${dictionary} to be one of: Null, Undefined, Object.`\n })\n }\n\n for (const options of converters) {\n const { key, defaultValue, required, converter } = options\n\n if (required === true) {\n if (!hasOwn(dictionary, key)) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Missing required key \"${key}\".`\n })\n }\n }\n\n let value = dictionary[key]\n const hasDefault = hasOwn(options, 'defaultValue')\n\n // Only use defaultValue if value is undefined and\n // a defaultValue options was provided.\n if (hasDefault && value !== null) {\n value = value ?? defaultValue\n }\n\n // A key can be optional and have no default value.\n // When this happens, do not perform a conversion,\n // and do not assign the key a value.\n if (required || hasDefault || value !== undefined) {\n value = converter(value)\n\n if (\n options.allowedValues &&\n !options.allowedValues.includes(value)\n ) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.`\n })\n }\n\n dict[key] = value\n }\n }\n\n return dict\n }\n}\n\nwebidl.nullableConverter = function (converter) {\n return (V) => {\n if (V === null) {\n return V\n }\n\n return converter(V)\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-DOMString\nwebidl.converters.DOMString = function (V, opts = {}) {\n // 1. If V is null and the conversion is to an IDL type\n // associated with the [LegacyNullToEmptyString]\n // extended attribute, then return the DOMString value\n // that represents the empty string.\n if (V === null && opts.legacyNullToEmptyString) {\n return ''\n }\n\n // 2. Let x be ? ToString(V).\n if (typeof V === 'symbol') {\n throw new TypeError('Could not convert argument of type symbol to string.')\n }\n\n // 3. Return the IDL DOMString value that represents the\n // same sequence of code units as the one the\n // ECMAScript String value x represents.\n return String(V)\n}\n\n// https://webidl.spec.whatwg.org/#es-ByteString\nwebidl.converters.ByteString = function (V) {\n // 1. Let x be ? ToString(V).\n // Note: DOMString converter perform ? ToString(V)\n const x = webidl.converters.DOMString(V)\n\n // 2. If the value of any element of x is greater than\n // 255, then throw a TypeError.\n for (let index = 0; index < x.length; index++) {\n if (x.charCodeAt(index) > 255) {\n throw new TypeError(\n 'Cannot convert argument to a ByteString because the character at ' +\n `index ${index} has a value of ${x.charCodeAt(index)} which is greater than 255.`\n )\n }\n }\n\n // 3. Return an IDL ByteString value whose length is the\n // length of x, and where the value of each element is\n // the value of the corresponding element of x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-USVString\nwebidl.converters.USVString = toUSVString\n\n// https://webidl.spec.whatwg.org/#es-boolean\nwebidl.converters.boolean = function (V) {\n // 1. Let x be the result of computing ToBoolean(V).\n const x = Boolean(V)\n\n // 2. Return the IDL boolean value that is the one that represents\n // the same truth value as the ECMAScript Boolean value x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-any\nwebidl.converters.any = function (V) {\n return V\n}\n\n// https://webidl.spec.whatwg.org/#es-long-long\nwebidl.converters['long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"signed\").\n const x = webidl.util.ConvertToInt(V, 64, 'signed')\n\n // 2. Return the IDL long long value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long-long\nwebidl.converters['unsigned long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 64, 'unsigned')\n\n // 2. Return the IDL unsigned long long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long\nwebidl.converters['unsigned long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 32, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 32, 'unsigned')\n\n // 2. Return the IDL unsigned long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-short\nwebidl.converters['unsigned short'] = function (V, opts) {\n // 1. Let x be ? ConvertToInt(V, 16, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts)\n\n // 2. Return the IDL unsigned short value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#idl-ArrayBuffer\nwebidl.converters.ArrayBuffer = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have an\n // [[ArrayBufferData]] internal slot, then throw a\n // TypeError.\n // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances\n // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isAnyArrayBuffer(V)\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${V}`,\n argument: `${V}`,\n types: ['ArrayBuffer']\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V) is true, then throw a\n // TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V) is true, then throw a\n // TypeError.\n // Note: resizable ArrayBuffers are currently a proposal.\n\n // 4. Return the IDL ArrayBuffer value that is a\n // reference to the same object as V.\n return V\n}\n\nwebidl.converters.TypedArray = function (V, T, opts = {}) {\n // 1. Let T be the IDL type V is being converted to.\n\n // 2. If Type(V) is not Object, or V does not have a\n // [[TypedArrayName]] internal slot with a value\n // equal to T’s name, then throw a TypeError.\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isTypedArray(V) ||\n V.constructor.name !== T.name\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${T.name}`,\n argument: `${V}`,\n types: [T.name]\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 4. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable array buffers are currently a proposal\n\n // 5. Return the IDL value of type T that is a reference\n // to the same object as V.\n return V\n}\n\nwebidl.converters.DataView = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have a\n // [[DataView]] internal slot, then throw a TypeError.\n if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) {\n throw webidl.errors.exception({\n header: 'DataView',\n message: 'Object is not a DataView.'\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true,\n // then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable ArrayBuffers are currently a proposal\n\n // 4. Return the IDL DataView value that is a reference\n // to the same object as V.\n return V\n}\n\n// https://webidl.spec.whatwg.org/#BufferSource\nwebidl.converters.BufferSource = function (V, opts = {}) {\n if (types.isAnyArrayBuffer(V)) {\n return webidl.converters.ArrayBuffer(V, opts)\n }\n\n if (types.isTypedArray(V)) {\n return webidl.converters.TypedArray(V, V.constructor)\n }\n\n if (types.isDataView(V)) {\n return webidl.converters.DataView(V, opts)\n }\n\n throw new TypeError(`Could not convert ${V} to a BufferSource.`)\n}\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.ByteString\n)\n\nwebidl.converters['sequence>'] = webidl.sequenceConverter(\n webidl.converters['sequence']\n)\n\nwebidl.converters['record'] = webidl.recordConverter(\n webidl.converters.ByteString,\n webidl.converters.ByteString\n)\n\nmodule.exports = {\n webidl\n}\n","const assert = require('assert')\nconst { atob } = require('buffer')\nconst { isomorphicDecode } = require('./util')\n\nconst encoder = new TextEncoder()\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-token-code-point\n */\nconst HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/\nconst HTTP_WHITESPACE_REGEX = /(\\u000A|\\u000D|\\u0009|\\u0020)/ // eslint-disable-line\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point\n */\nconst HTTP_QUOTED_STRING_TOKENS = /[\\u0009|\\u0020-\\u007E|\\u0080-\\u00FF]/ // eslint-disable-line\n\n// https://fetch.spec.whatwg.org/#data-url-processor\n/** @param {URL} dataURL */\nfunction dataURLProcessor (dataURL) {\n // 1. Assert: dataURL’s scheme is \"data\".\n assert(dataURL.protocol === 'data:')\n\n // 2. Let input be the result of running the URL\n // serializer on dataURL with exclude fragment\n // set to true.\n let input = URLSerializer(dataURL, true)\n\n // 3. Remove the leading \"data:\" string from input.\n input = input.slice(5)\n\n // 4. Let position point at the start of input.\n const position = { position: 0 }\n\n // 5. Let mimeType be the result of collecting a\n // sequence of code points that are not equal\n // to U+002C (,), given position.\n let mimeType = collectASequenceOfCodePointsFast(\n ',',\n input,\n position\n )\n\n // 6. Strip leading and trailing ASCII whitespace\n // from mimeType.\n // Undici implementation note: we need to store the\n // length because if the mimetype has spaces removed,\n // the wrong amount will be sliced from the input in\n // step #9\n const mimeTypeLength = mimeType.length\n mimeType = removeASCIIWhitespace(mimeType, true, true)\n\n // 7. If position is past the end of input, then\n // return failure\n if (position.position >= input.length) {\n return 'failure'\n }\n\n // 8. Advance position by 1.\n position.position++\n\n // 9. Let encodedBody be the remainder of input.\n const encodedBody = input.slice(mimeTypeLength + 1)\n\n // 10. Let body be the percent-decoding of encodedBody.\n let body = stringPercentDecode(encodedBody)\n\n // 11. If mimeType ends with U+003B (;), followed by\n // zero or more U+0020 SPACE, followed by an ASCII\n // case-insensitive match for \"base64\", then:\n if (/;(\\u0020){0,}base64$/i.test(mimeType)) {\n // 1. Let stringBody be the isomorphic decode of body.\n const stringBody = isomorphicDecode(body)\n\n // 2. Set body to the forgiving-base64 decode of\n // stringBody.\n body = forgivingBase64(stringBody)\n\n // 3. If body is failure, then return failure.\n if (body === 'failure') {\n return 'failure'\n }\n\n // 4. Remove the last 6 code points from mimeType.\n mimeType = mimeType.slice(0, -6)\n\n // 5. Remove trailing U+0020 SPACE code points from mimeType,\n // if any.\n mimeType = mimeType.replace(/(\\u0020)+$/, '')\n\n // 6. Remove the last U+003B (;) code point from mimeType.\n mimeType = mimeType.slice(0, -1)\n }\n\n // 12. If mimeType starts with U+003B (;), then prepend\n // \"text/plain\" to mimeType.\n if (mimeType.startsWith(';')) {\n mimeType = 'text/plain' + mimeType\n }\n\n // 13. Let mimeTypeRecord be the result of parsing\n // mimeType.\n let mimeTypeRecord = parseMIMEType(mimeType)\n\n // 14. If mimeTypeRecord is failure, then set\n // mimeTypeRecord to text/plain;charset=US-ASCII.\n if (mimeTypeRecord === 'failure') {\n mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII')\n }\n\n // 15. Return a new data: URL struct whose MIME\n // type is mimeTypeRecord and body is body.\n // https://fetch.spec.whatwg.org/#data-url-struct\n return { mimeType: mimeTypeRecord, body }\n}\n\n// https://url.spec.whatwg.org/#concept-url-serializer\n/**\n * @param {URL} url\n * @param {boolean} excludeFragment\n */\nfunction URLSerializer (url, excludeFragment = false) {\n if (!excludeFragment) {\n return url.href\n }\n\n const href = url.href\n const hashLength = url.hash.length\n\n return hashLength === 0 ? href : href.substring(0, href.length - hashLength)\n}\n\n// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points\n/**\n * @param {(char: string) => boolean} condition\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePoints (condition, input, position) {\n // 1. Let result be the empty string.\n let result = ''\n\n // 2. While position doesn’t point past the end of input and the\n // code point at position within input meets the condition condition:\n while (position.position < input.length && condition(input[position.position])) {\n // 1. Append that code point to the end of result.\n result += input[position.position]\n\n // 2. Advance position by 1.\n position.position++\n }\n\n // 3. Return result.\n return result\n}\n\n/**\n * A faster collectASequenceOfCodePoints that only works when comparing a single character.\n * @param {string} char\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePointsFast (char, input, position) {\n const idx = input.indexOf(char, position.position)\n const start = position.position\n\n if (idx === -1) {\n position.position = input.length\n return input.slice(start)\n }\n\n position.position = idx\n return input.slice(start, position.position)\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\n/** @param {string} input */\nfunction stringPercentDecode (input) {\n // 1. Let bytes be the UTF-8 encoding of input.\n const bytes = encoder.encode(input)\n\n // 2. Return the percent-decoding of bytes.\n return percentDecode(bytes)\n}\n\n// https://url.spec.whatwg.org/#percent-decode\n/** @param {Uint8Array} input */\nfunction percentDecode (input) {\n // 1. Let output be an empty byte sequence.\n /** @type {number[]} */\n const output = []\n\n // 2. For each byte byte in input:\n for (let i = 0; i < input.length; i++) {\n const byte = input[i]\n\n // 1. If byte is not 0x25 (%), then append byte to output.\n if (byte !== 0x25) {\n output.push(byte)\n\n // 2. Otherwise, if byte is 0x25 (%) and the next two bytes\n // after byte in input are not in the ranges\n // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F),\n // and 0x61 (a) to 0x66 (f), all inclusive, append byte\n // to output.\n } else if (\n byte === 0x25 &&\n !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))\n ) {\n output.push(0x25)\n\n // 3. Otherwise:\n } else {\n // 1. Let bytePoint be the two bytes after byte in input,\n // decoded, and then interpreted as hexadecimal number.\n const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2])\n const bytePoint = Number.parseInt(nextTwoBytes, 16)\n\n // 2. Append a byte whose value is bytePoint to output.\n output.push(bytePoint)\n\n // 3. Skip the next two bytes in input.\n i += 2\n }\n }\n\n // 3. Return output.\n return Uint8Array.from(output)\n}\n\n// https://mimesniff.spec.whatwg.org/#parse-a-mime-type\n/** @param {string} input */\nfunction parseMIMEType (input) {\n // 1. Remove any leading and trailing HTTP whitespace\n // from input.\n input = removeHTTPWhitespace(input, true, true)\n\n // 2. Let position be a position variable for input,\n // initially pointing at the start of input.\n const position = { position: 0 }\n\n // 3. Let type be the result of collecting a sequence\n // of code points that are not U+002F (/) from\n // input, given position.\n const type = collectASequenceOfCodePointsFast(\n '/',\n input,\n position\n )\n\n // 4. If type is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n // https://mimesniff.spec.whatwg.org/#http-token-code-point\n if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) {\n return 'failure'\n }\n\n // 5. If position is past the end of input, then return\n // failure\n if (position.position > input.length) {\n return 'failure'\n }\n\n // 6. Advance position by 1. (This skips past U+002F (/).)\n position.position++\n\n // 7. Let subtype be the result of collecting a sequence of\n // code points that are not U+003B (;) from input, given\n // position.\n let subtype = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 8. Remove any trailing HTTP whitespace from subtype.\n subtype = removeHTTPWhitespace(subtype, false, true)\n\n // 9. If subtype is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) {\n return 'failure'\n }\n\n const typeLowercase = type.toLowerCase()\n const subtypeLowercase = subtype.toLowerCase()\n\n // 10. Let mimeType be a new MIME type record whose type\n // is type, in ASCII lowercase, and subtype is subtype,\n // in ASCII lowercase.\n // https://mimesniff.spec.whatwg.org/#mime-type\n const mimeType = {\n type: typeLowercase,\n subtype: subtypeLowercase,\n /** @type {Map} */\n parameters: new Map(),\n // https://mimesniff.spec.whatwg.org/#mime-type-essence\n essence: `${typeLowercase}/${subtypeLowercase}`\n }\n\n // 11. While position is not past the end of input:\n while (position.position < input.length) {\n // 1. Advance position by 1. (This skips past U+003B (;).)\n position.position++\n\n // 2. Collect a sequence of code points that are HTTP\n // whitespace from input given position.\n collectASequenceOfCodePoints(\n // https://fetch.spec.whatwg.org/#http-whitespace\n char => HTTP_WHITESPACE_REGEX.test(char),\n input,\n position\n )\n\n // 3. Let parameterName be the result of collecting a\n // sequence of code points that are not U+003B (;)\n // or U+003D (=) from input, given position.\n let parameterName = collectASequenceOfCodePoints(\n (char) => char !== ';' && char !== '=',\n input,\n position\n )\n\n // 4. Set parameterName to parameterName, in ASCII\n // lowercase.\n parameterName = parameterName.toLowerCase()\n\n // 5. If position is not past the end of input, then:\n if (position.position < input.length) {\n // 1. If the code point at position within input is\n // U+003B (;), then continue.\n if (input[position.position] === ';') {\n continue\n }\n\n // 2. Advance position by 1. (This skips past U+003D (=).)\n position.position++\n }\n\n // 6. If position is past the end of input, then break.\n if (position.position > input.length) {\n break\n }\n\n // 7. Let parameterValue be null.\n let parameterValue = null\n\n // 8. If the code point at position within input is\n // U+0022 (\"), then:\n if (input[position.position] === '\"') {\n // 1. Set parameterValue to the result of collecting\n // an HTTP quoted string from input, given position\n // and the extract-value flag.\n parameterValue = collectAnHTTPQuotedString(input, position, true)\n\n // 2. Collect a sequence of code points that are not\n // U+003B (;) from input, given position.\n collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 9. Otherwise:\n } else {\n // 1. Set parameterValue to the result of collecting\n // a sequence of code points that are not U+003B (;)\n // from input, given position.\n parameterValue = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 2. Remove any trailing HTTP whitespace from parameterValue.\n parameterValue = removeHTTPWhitespace(parameterValue, false, true)\n\n // 3. If parameterValue is the empty string, then continue.\n if (parameterValue.length === 0) {\n continue\n }\n }\n\n // 10. If all of the following are true\n // - parameterName is not the empty string\n // - parameterName solely contains HTTP token code points\n // - parameterValue solely contains HTTP quoted-string token code points\n // - mimeType’s parameters[parameterName] does not exist\n // then set mimeType’s parameters[parameterName] to parameterValue.\n if (\n parameterName.length !== 0 &&\n HTTP_TOKEN_CODEPOINTS.test(parameterName) &&\n (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) &&\n !mimeType.parameters.has(parameterName)\n ) {\n mimeType.parameters.set(parameterName, parameterValue)\n }\n }\n\n // 12. Return mimeType.\n return mimeType\n}\n\n// https://infra.spec.whatwg.org/#forgiving-base64-decode\n/** @param {string} data */\nfunction forgivingBase64 (data) {\n // 1. Remove all ASCII whitespace from data.\n data = data.replace(/[\\u0009\\u000A\\u000C\\u000D\\u0020]/g, '') // eslint-disable-line\n\n // 2. If data’s code point length divides by 4 leaving\n // no remainder, then:\n if (data.length % 4 === 0) {\n // 1. If data ends with one or two U+003D (=) code points,\n // then remove them from data.\n data = data.replace(/=?=$/, '')\n }\n\n // 3. If data’s code point length divides by 4 leaving\n // a remainder of 1, then return failure.\n if (data.length % 4 === 1) {\n return 'failure'\n }\n\n // 4. If data contains a code point that is not one of\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n // then return failure.\n if (/[^+/0-9A-Za-z]/.test(data)) {\n return 'failure'\n }\n\n const binary = atob(data)\n const bytes = new Uint8Array(binary.length)\n\n for (let byte = 0; byte < binary.length; byte++) {\n bytes[byte] = binary.charCodeAt(byte)\n }\n\n return bytes\n}\n\n// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string\n// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string\n/**\n * @param {string} input\n * @param {{ position: number }} position\n * @param {boolean?} extractValue\n */\nfunction collectAnHTTPQuotedString (input, position, extractValue) {\n // 1. Let positionStart be position.\n const positionStart = position.position\n\n // 2. Let value be the empty string.\n let value = ''\n\n // 3. Assert: the code point at position within input\n // is U+0022 (\").\n assert(input[position.position] === '\"')\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. While true:\n while (true) {\n // 1. Append the result of collecting a sequence of code points\n // that are not U+0022 (\") or U+005C (\\) from input, given\n // position, to value.\n value += collectASequenceOfCodePoints(\n (char) => char !== '\"' && char !== '\\\\',\n input,\n position\n )\n\n // 2. If position is past the end of input, then break.\n if (position.position >= input.length) {\n break\n }\n\n // 3. Let quoteOrBackslash be the code point at position within\n // input.\n const quoteOrBackslash = input[position.position]\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. If quoteOrBackslash is U+005C (\\), then:\n if (quoteOrBackslash === '\\\\') {\n // 1. If position is past the end of input, then append\n // U+005C (\\) to value and break.\n if (position.position >= input.length) {\n value += '\\\\'\n break\n }\n\n // 2. Append the code point at position within input to value.\n value += input[position.position]\n\n // 3. Advance position by 1.\n position.position++\n\n // 6. Otherwise:\n } else {\n // 1. Assert: quoteOrBackslash is U+0022 (\").\n assert(quoteOrBackslash === '\"')\n\n // 2. Break.\n break\n }\n }\n\n // 6. If the extract-value flag is set, then return value.\n if (extractValue) {\n return value\n }\n\n // 7. Return the code points from positionStart to position,\n // inclusive, within input.\n return input.slice(positionStart, position.position)\n}\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type\n */\nfunction serializeAMimeType (mimeType) {\n assert(mimeType !== 'failure')\n const { parameters, essence } = mimeType\n\n // 1. Let serialization be the concatenation of mimeType’s\n // type, U+002F (/), and mimeType’s subtype.\n let serialization = essence\n\n // 2. For each name → value of mimeType’s parameters:\n for (let [name, value] of parameters.entries()) {\n // 1. Append U+003B (;) to serialization.\n serialization += ';'\n\n // 2. Append name to serialization.\n serialization += name\n\n // 3. Append U+003D (=) to serialization.\n serialization += '='\n\n // 4. If value does not solely contain HTTP token code\n // points or value is the empty string, then:\n if (!HTTP_TOKEN_CODEPOINTS.test(value)) {\n // 1. Precede each occurence of U+0022 (\") or\n // U+005C (\\) in value with U+005C (\\).\n value = value.replace(/(\\\\|\")/g, '\\\\$1')\n\n // 2. Prepend U+0022 (\") to value.\n value = '\"' + value\n\n // 3. Append U+0022 (\") to value.\n value += '\"'\n }\n\n // 5. Append value to serialization.\n serialization += value\n }\n\n // 3. Return serialization.\n return serialization\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} char\n */\nfunction isHTTPWhiteSpace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === ' '\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} str\n */\nfunction removeHTTPWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n * @param {string} char\n */\nfunction isASCIIWhitespace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === '\\f' || char === ' '\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace\n */\nfunction removeASCIIWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\nmodule.exports = {\n dataURLProcessor,\n URLSerializer,\n collectASequenceOfCodePoints,\n collectASequenceOfCodePointsFast,\n stringPercentDecode,\n parseMIMEType,\n collectAnHTTPQuotedString,\n serializeAMimeType\n}\n","'use strict'\n\nconst { Blob, File: NativeFile } = require('buffer')\nconst { types } = require('util')\nconst { kState } = require('./symbols')\nconst { isBlobLike } = require('./util')\nconst { webidl } = require('./webidl')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\nconst { kEnumerableProperty } = require('../core/util')\nconst encoder = new TextEncoder()\n\nclass File extends Blob {\n constructor (fileBits, fileName, options = {}) {\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' })\n\n fileBits = webidl.converters['sequence'](fileBits)\n fileName = webidl.converters.USVString(fileName)\n options = webidl.converters.FilePropertyBag(options)\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n // Note: Blob handles this for us\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // 2. Convert every character in t to ASCII lowercase.\n let t = options.type\n let d\n\n // eslint-disable-next-line no-labels\n substep: {\n if (t) {\n t = parseMIMEType(t)\n\n if (t === 'failure') {\n t = ''\n // eslint-disable-next-line no-labels\n break substep\n }\n\n t = serializeAMimeType(t).toLowerCase()\n }\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n d = options.lastModified\n }\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n super(processBlobParts(fileBits, options), { type: t })\n this[kState] = {\n name: n,\n lastModified: d,\n type: t\n }\n }\n\n get name () {\n webidl.brandCheck(this, File)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, File)\n\n return this[kState].lastModified\n }\n\n get type () {\n webidl.brandCheck(this, File)\n\n return this[kState].type\n }\n}\n\nclass FileLike {\n constructor (blobLike, fileName, options = {}) {\n // TODO: argument idl type check\n\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // TODO\n const t = options.type\n\n // 2. Convert every character in t to ASCII lowercase.\n // TODO\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified ?? Date.now()\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n this[kState] = {\n blobLike,\n name: n,\n type: t,\n lastModified: d\n }\n }\n\n stream (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.stream(...args)\n }\n\n arrayBuffer (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.arrayBuffer(...args)\n }\n\n slice (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.slice(...args)\n }\n\n text (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.text(...args)\n }\n\n get size () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.size\n }\n\n get type () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.type\n }\n\n get name () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n}\n\nObject.defineProperties(File.prototype, {\n [Symbol.toStringTag]: {\n value: 'File',\n configurable: true\n },\n name: kEnumerableProperty,\n lastModified: kEnumerableProperty\n})\n\nwebidl.converters.Blob = webidl.interfaceConverter(Blob)\n\nwebidl.converters.BlobPart = function (V, opts) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n ArrayBuffer.isView(V) ||\n types.isAnyArrayBuffer(V)\n ) {\n return webidl.converters.BufferSource(V, opts)\n }\n }\n\n return webidl.converters.USVString(V, opts)\n}\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.BlobPart\n)\n\n// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag\nwebidl.converters.FilePropertyBag = webidl.dictionaryConverter([\n {\n key: 'lastModified',\n converter: webidl.converters['long long'],\n get defaultValue () {\n return Date.now()\n }\n },\n {\n key: 'type',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'endings',\n converter: (value) => {\n value = webidl.converters.DOMString(value)\n value = value.toLowerCase()\n\n if (value !== 'native') {\n value = 'transparent'\n }\n\n return value\n },\n defaultValue: 'transparent'\n }\n])\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#process-blob-parts\n * @param {(NodeJS.TypedArray|Blob|string)[]} parts\n * @param {{ type: string, endings: string }} options\n */\nfunction processBlobParts (parts, options) {\n // 1. Let bytes be an empty sequence of bytes.\n /** @type {NodeJS.TypedArray[]} */\n const bytes = []\n\n // 2. For each element in parts:\n for (const element of parts) {\n // 1. If element is a USVString, run the following substeps:\n if (typeof element === 'string') {\n // 1. Let s be element.\n let s = element\n\n // 2. If the endings member of options is \"native\", set s\n // to the result of converting line endings to native\n // of element.\n if (options.endings === 'native') {\n s = convertLineEndingsNative(s)\n }\n\n // 3. Append the result of UTF-8 encoding s to bytes.\n bytes.push(encoder.encode(s))\n } else if (\n types.isAnyArrayBuffer(element) ||\n types.isTypedArray(element)\n ) {\n // 2. If element is a BufferSource, get a copy of the\n // bytes held by the buffer source, and append those\n // bytes to bytes.\n if (!element.buffer) { // ArrayBuffer\n bytes.push(new Uint8Array(element))\n } else {\n bytes.push(\n new Uint8Array(element.buffer, element.byteOffset, element.byteLength)\n )\n }\n } else if (isBlobLike(element)) {\n // 3. If element is a Blob, append the bytes it represents\n // to bytes.\n bytes.push(element)\n }\n }\n\n // 3. Return bytes.\n return bytes\n}\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native\n * @param {string} s\n */\nfunction convertLineEndingsNative (s) {\n // 1. Let native line ending be be the code point U+000A LF.\n let nativeLineEnding = '\\n'\n\n // 2. If the underlying platform’s conventions are to\n // represent newlines as a carriage return and line feed\n // sequence, set native line ending to the code point\n // U+000D CR followed by the code point U+000A LF.\n if (process.platform === 'win32') {\n nativeLineEnding = '\\r\\n'\n }\n\n return s.replace(/\\r?\\n/g, nativeLineEnding)\n}\n\n// If this function is moved to ./util.js, some tools (such as\n// rollup) will warn about circular dependencies. See:\n// https://github.com/nodejs/undici/issues/1629\nfunction isFileLike (object) {\n return (\n (NativeFile && object instanceof NativeFile) ||\n object instanceof File || (\n object &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n object[Symbol.toStringTag] === 'File'\n )\n )\n}\n\nmodule.exports = { File, FileLike, isFileLike }\n","'use strict'\n\nconst { isBlobLike, toUSVString, makeIterator } = require('./util')\nconst { kState } = require('./symbols')\nconst { File: UndiciFile, FileLike, isFileLike } = require('./file')\nconst { webidl } = require('./webidl')\nconst { Blob, File: NativeFile } = require('buffer')\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://xhr.spec.whatwg.org/#formdata\nclass FormData {\n constructor (form) {\n if (form !== undefined) {\n throw webidl.errors.conversionFailed({\n prefix: 'FormData constructor',\n argument: 'Argument 1',\n types: ['undefined']\n })\n }\n\n this[kState] = []\n }\n\n append (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? webidl.converters.USVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with\n // name, value, and filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. Append entry to this’s entry list.\n this[kState].push(entry)\n }\n\n delete (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' })\n\n name = webidl.converters.USVString(name)\n\n // The delete(name) method steps are to remove all entries whose name\n // is name from this’s entry list.\n this[kState] = this[kState].filter(entry => entry.name !== name)\n }\n\n get (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this’s entry list,\n // then return null.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx === -1) {\n return null\n }\n\n // 2. Return the value of the first entry whose name is name from\n // this’s entry list.\n return this[kState][idx].value\n }\n\n getAll (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this’s entry list,\n // then return the empty list.\n // 2. Return the values of all entries whose name is name, in order,\n // from this’s entry list.\n return this[kState]\n .filter((entry) => entry.name === name)\n .map((entry) => entry.value)\n }\n\n has (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' })\n\n name = webidl.converters.USVString(name)\n\n // The has(name) method steps are to return true if there is an entry\n // whose name is name in this’s entry list; otherwise false.\n return this[kState].findIndex((entry) => entry.name === name) !== -1\n }\n\n set (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // The set(name, value) and set(name, blobValue, filename) method steps\n // are:\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? toUSVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with name, value, and\n // filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. If there are entries in this’s entry list whose name is name, then\n // replace the first such entry with entry and remove the others.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx !== -1) {\n this[kState] = [\n ...this[kState].slice(0, idx),\n entry,\n ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name)\n ]\n } else {\n // 4. Otherwise, append entry to this’s entry list.\n this[kState].push(entry)\n }\n }\n\n entries () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key+value'\n )\n }\n\n keys () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: FormData) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n}\n\nFormData.prototype[Symbol.iterator] = FormData.prototype.entries\n\nObject.defineProperties(FormData.prototype, {\n [Symbol.toStringTag]: {\n value: 'FormData',\n configurable: true\n }\n})\n\n/**\n * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry\n * @param {string} name\n * @param {string|Blob} value\n * @param {?string} filename\n * @returns\n */\nfunction makeEntry (name, value, filename) {\n // 1. Set name to the result of converting name into a scalar value string.\n // \"To convert a string into a scalar value string, replace any surrogates\n // with U+FFFD.\"\n // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end\n name = Buffer.from(name).toString('utf8')\n\n // 2. If value is a string, then set value to the result of converting\n // value into a scalar value string.\n if (typeof value === 'string') {\n value = Buffer.from(value).toString('utf8')\n } else {\n // 3. Otherwise:\n\n // 1. If value is not a File object, then set value to a new File object,\n // representing the same bytes, whose name attribute value is \"blob\"\n if (!isFileLike(value)) {\n value = value instanceof Blob\n ? new File([value], 'blob', { type: value.type })\n : new FileLike(value, 'blob', { type: value.type })\n }\n\n // 2. If filename is given, then set value to a new File object,\n // representing the same bytes, whose name attribute is filename.\n if (filename !== undefined) {\n /** @type {FilePropertyBag} */\n const options = {\n type: value.type,\n lastModified: value.lastModified\n }\n\n value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile\n ? new File([value], filename, options)\n : new FileLike(value, filename, options)\n }\n }\n\n // 4. Return an entry whose name is name and whose value is value.\n return { name, value }\n}\n\nmodule.exports = { FormData }\n","'use strict'\n\nconst Busboy = require('@fastify/busboy')\nconst util = require('../core/util')\nconst {\n ReadableStreamFrom,\n isBlobLike,\n isReadableStreamLike,\n readableStreamClose,\n createDeferredPromise,\n fullyReadBody\n} = require('./util')\nconst { FormData } = require('./formdata')\nconst { kState } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { DOMException, structuredClone } = require('./constants')\nconst { Blob, File: NativeFile } = require('buffer')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { isErrored } = require('../core/util')\nconst { isUint8Array, isArrayBuffer } = require('util/types')\nconst { File: UndiciFile } = require('./file')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\n\nlet random\ntry {\n const crypto = require('node:crypto')\n random = (max) => crypto.randomInt(0, max)\n} catch {\n random = (max) => Math.floor(Math.random(max))\n}\n\nlet ReadableStream = globalThis.ReadableStream\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\n// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\nfunction extractBody (object, keepalive = false) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // 1. Let stream be null.\n let stream = null\n\n // 2. If object is a ReadableStream object, then set stream to object.\n if (object instanceof ReadableStream) {\n stream = object\n } else if (isBlobLike(object)) {\n // 3. Otherwise, if object is a Blob object, set stream to the\n // result of running object’s get stream.\n stream = object.stream()\n } else {\n // 4. Otherwise, set stream to a new ReadableStream object, and set\n // up stream.\n stream = new ReadableStream({\n async pull (controller) {\n controller.enqueue(\n typeof source === 'string' ? textEncoder.encode(source) : source\n )\n queueMicrotask(() => readableStreamClose(controller))\n },\n start () {},\n type: undefined\n })\n }\n\n // 5. Assert: stream is a ReadableStream object.\n assert(isReadableStreamLike(stream))\n\n // 6. Let action be null.\n let action = null\n\n // 7. Let source be null.\n let source = null\n\n // 8. Let length be null.\n let length = null\n\n // 9. Let type be null.\n let type = null\n\n // 10. Switch on object:\n if (typeof object === 'string') {\n // Set source to the UTF-8 encoding of object.\n // Note: setting source to a Uint8Array here breaks some mocking assumptions.\n source = object\n\n // Set type to `text/plain;charset=UTF-8`.\n type = 'text/plain;charset=UTF-8'\n } else if (object instanceof URLSearchParams) {\n // URLSearchParams\n\n // spec says to run application/x-www-form-urlencoded on body.list\n // this is implemented in Node.js as apart of an URLSearchParams instance toString method\n // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490\n // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100\n\n // Set source to the result of running the application/x-www-form-urlencoded serializer with object’s list.\n source = object.toString()\n\n // Set type to `application/x-www-form-urlencoded;charset=UTF-8`.\n type = 'application/x-www-form-urlencoded;charset=UTF-8'\n } else if (isArrayBuffer(object)) {\n // BufferSource/ArrayBuffer\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.slice())\n } else if (ArrayBuffer.isView(object)) {\n // BufferSource/ArrayBufferView\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))\n } else if (util.isFormDataLike(object)) {\n const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, '0')}`\n const prefix = `--${boundary}\\r\\nContent-Disposition: form-data`\n\n /*! formdata-polyfill. MIT License. Jimmy Wärting */\n const escape = (str) =>\n str.replace(/\\n/g, '%0A').replace(/\\r/g, '%0D').replace(/\"/g, '%22')\n const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g, '\\r\\n')\n\n // Set action to this step: run the multipart/form-data\n // encoding algorithm, with object’s entry list and UTF-8.\n // - This ensures that the body is immutable and can't be changed afterwords\n // - That the content-length is calculated in advance.\n // - And that all parts are pre-encoded and ready to be sent.\n\n const blobParts = []\n const rn = new Uint8Array([13, 10]) // '\\r\\n'\n length = 0\n let hasUnknownSizeValue = false\n\n for (const [name, value] of object) {\n if (typeof value === 'string') {\n const chunk = textEncoder.encode(prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n `\\r\\n\\r\\n${normalizeLinefeeds(value)}\\r\\n`)\n blobParts.push(chunk)\n length += chunk.byteLength\n } else {\n const chunk = textEncoder.encode(`${prefix}; name=\"${escape(normalizeLinefeeds(name))}\"` +\n (value.name ? `; filename=\"${escape(value.name)}\"` : '') + '\\r\\n' +\n `Content-Type: ${\n value.type || 'application/octet-stream'\n }\\r\\n\\r\\n`)\n blobParts.push(chunk, value, rn)\n if (typeof value.size === 'number') {\n length += chunk.byteLength + value.size + rn.byteLength\n } else {\n hasUnknownSizeValue = true\n }\n }\n }\n\n const chunk = textEncoder.encode(`--${boundary}--`)\n blobParts.push(chunk)\n length += chunk.byteLength\n if (hasUnknownSizeValue) {\n length = null\n }\n\n // Set source to object.\n source = object\n\n action = async function * () {\n for (const part of blobParts) {\n if (part.stream) {\n yield * part.stream()\n } else {\n yield part\n }\n }\n }\n\n // Set type to `multipart/form-data; boundary=`,\n // followed by the multipart/form-data boundary string generated\n // by the multipart/form-data encoding algorithm.\n type = 'multipart/form-data; boundary=' + boundary\n } else if (isBlobLike(object)) {\n // Blob\n\n // Set source to object.\n source = object\n\n // Set length to object’s size.\n length = object.size\n\n // If object’s type attribute is not the empty byte sequence, set\n // type to its value.\n if (object.type) {\n type = object.type\n }\n } else if (typeof object[Symbol.asyncIterator] === 'function') {\n // If keepalive is true, then throw a TypeError.\n if (keepalive) {\n throw new TypeError('keepalive')\n }\n\n // If object is disturbed or locked, then throw a TypeError.\n if (util.isDisturbed(object) || object.locked) {\n throw new TypeError(\n 'Response body object should not be disturbed or locked'\n )\n }\n\n stream =\n object instanceof ReadableStream ? object : ReadableStreamFrom(object)\n }\n\n // 11. If source is a byte sequence, then set action to a\n // step that returns source and length to source’s length.\n if (typeof source === 'string' || util.isBuffer(source)) {\n length = Buffer.byteLength(source)\n }\n\n // 12. If action is non-null, then run these steps in in parallel:\n if (action != null) {\n // Run action.\n let iterator\n stream = new ReadableStream({\n async start () {\n iterator = action(object)[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { value, done } = await iterator.next()\n if (done) {\n // When running action is done, close stream.\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n // Whenever one or more bytes are available and stream is not errored,\n // enqueue a Uint8Array wrapping an ArrayBuffer containing the available\n // bytes into stream.\n if (!isErrored(stream)) {\n controller.enqueue(new Uint8Array(value))\n }\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n },\n type: undefined\n })\n }\n\n // 13. Let body be a body whose stream is stream, source is source,\n // and length is length.\n const body = { stream, source, length }\n\n // 14. Return (body, type).\n return [body, type]\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit-safely-extract\nfunction safelyExtractBody (object, keepalive = false) {\n if (!ReadableStream) {\n // istanbul ignore next\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // To safely extract a body and a `Content-Type` value from\n // a byte sequence or BodyInit object object, run these steps:\n\n // 1. If object is a ReadableStream object, then:\n if (object instanceof ReadableStream) {\n // Assert: object is neither disturbed nor locked.\n // istanbul ignore next\n assert(!util.isDisturbed(object), 'The body has already been consumed.')\n // istanbul ignore next\n assert(!object.locked, 'The stream is locked.')\n }\n\n // 2. Return the results of extracting object.\n return extractBody(object, keepalive)\n}\n\nfunction cloneBody (body) {\n // To clone a body body, run these steps:\n\n // https://fetch.spec.whatwg.org/#concept-body-clone\n\n // 1. Let « out1, out2 » be the result of teeing body’s stream.\n const [out1, out2] = body.stream.tee()\n const out2Clone = structuredClone(out2, { transfer: [out2] })\n // This, for whatever reasons, unrefs out2Clone which allows\n // the process to exit by itself.\n const [, finalClone] = out2Clone.tee()\n\n // 2. Set body’s stream to out1.\n body.stream = out1\n\n // 3. Return a body whose stream is out2 and other members are copied from body.\n return {\n stream: finalClone,\n length: body.length,\n source: body.source\n }\n}\n\nasync function * consumeBody (body) {\n if (body) {\n if (isUint8Array(body)) {\n yield body\n } else {\n const stream = body.stream\n\n if (util.isDisturbed(stream)) {\n throw new TypeError('The body has already been consumed.')\n }\n\n if (stream.locked) {\n throw new TypeError('The stream is locked.')\n }\n\n // Compat.\n stream[kBodyUsed] = true\n\n yield * stream\n }\n }\n}\n\nfunction throwIfAborted (state) {\n if (state.aborted) {\n throw new DOMException('The operation was aborted.', 'AbortError')\n }\n}\n\nfunction bodyMixinMethods (instance) {\n const methods = {\n blob () {\n // The blob() method steps are to return the result of\n // running consume body with this and the following step\n // given a byte sequence bytes: return a Blob whose\n // contents are bytes and whose type attribute is this’s\n // MIME type.\n return specConsumeBody(this, (bytes) => {\n let mimeType = bodyMimeType(this)\n\n if (mimeType === 'failure') {\n mimeType = ''\n } else if (mimeType) {\n mimeType = serializeAMimeType(mimeType)\n }\n\n // Return a Blob whose contents are bytes and type attribute\n // is mimeType.\n return new Blob([bytes], { type: mimeType })\n }, instance)\n },\n\n arrayBuffer () {\n // The arrayBuffer() method steps are to return the result\n // of running consume body with this and the following step\n // given a byte sequence bytes: return a new ArrayBuffer\n // whose contents are bytes.\n return specConsumeBody(this, (bytes) => {\n return new Uint8Array(bytes).buffer\n }, instance)\n },\n\n text () {\n // The text() method steps are to return the result of running\n // consume body with this and UTF-8 decode.\n return specConsumeBody(this, utf8DecodeBytes, instance)\n },\n\n json () {\n // The json() method steps are to return the result of running\n // consume body with this and parse JSON from bytes.\n return specConsumeBody(this, parseJSONFromBytes, instance)\n },\n\n async formData () {\n webidl.brandCheck(this, instance)\n\n throwIfAborted(this[kState])\n\n const contentType = this.headers.get('Content-Type')\n\n // If mimeType’s essence is \"multipart/form-data\", then:\n if (/multipart\\/form-data/.test(contentType)) {\n const headers = {}\n for (const [key, value] of this.headers) headers[key.toLowerCase()] = value\n\n const responseFormData = new FormData()\n\n let busboy\n\n try {\n busboy = new Busboy({\n headers,\n preservePath: true\n })\n } catch (err) {\n throw new DOMException(`${err}`, 'AbortError')\n }\n\n busboy.on('field', (name, value) => {\n responseFormData.append(name, value)\n })\n busboy.on('file', (name, value, filename, encoding, mimeType) => {\n const chunks = []\n\n if (encoding === 'base64' || encoding.toLowerCase() === 'base64') {\n let base64chunk = ''\n\n value.on('data', (chunk) => {\n base64chunk += chunk.toString().replace(/[\\r\\n]/gm, '')\n\n const end = base64chunk.length - base64chunk.length % 4\n chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64'))\n\n base64chunk = base64chunk.slice(end)\n })\n value.on('end', () => {\n chunks.push(Buffer.from(base64chunk, 'base64'))\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n } else {\n value.on('data', (chunk) => {\n chunks.push(chunk)\n })\n value.on('end', () => {\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n }\n })\n\n const busboyResolve = new Promise((resolve, reject) => {\n busboy.on('finish', resolve)\n busboy.on('error', (err) => reject(new TypeError(err)))\n })\n\n if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk)\n busboy.end()\n await busboyResolve\n\n return responseFormData\n } else if (/application\\/x-www-form-urlencoded/.test(contentType)) {\n // Otherwise, if mimeType’s essence is \"application/x-www-form-urlencoded\", then:\n\n // 1. Let entries be the result of parsing bytes.\n let entries\n try {\n let text = ''\n // application/x-www-form-urlencoded parser will keep the BOM.\n // https://url.spec.whatwg.org/#concept-urlencoded-parser\n // Note that streaming decoder is stateful and cannot be reused\n const streamingDecoder = new TextDecoder('utf-8', { ignoreBOM: true })\n\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n text += streamingDecoder.decode(chunk, { stream: true })\n }\n text += streamingDecoder.decode()\n entries = new URLSearchParams(text)\n } catch (err) {\n // istanbul ignore next: Unclear when new URLSearchParams can fail on a string.\n // 2. If entries is failure, then throw a TypeError.\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n // 3. Return a new FormData object whose entries are entries.\n const formData = new FormData()\n for (const [name, value] of entries) {\n formData.append(name, value)\n }\n return formData\n } else {\n // Wait a tick before checking if the request has been aborted.\n // Otherwise, a TypeError can be thrown when an AbortError should.\n await Promise.resolve()\n\n throwIfAborted(this[kState])\n\n // Otherwise, throw a TypeError.\n throw webidl.errors.exception({\n header: `${instance.name}.formData`,\n message: 'Could not parse content as FormData.'\n })\n }\n }\n }\n\n return methods\n}\n\nfunction mixinBody (prototype) {\n Object.assign(prototype.prototype, bodyMixinMethods(prototype))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-consume-body\n * @param {Response|Request} object\n * @param {(value: unknown) => unknown} convertBytesToJSValue\n * @param {Response|Request} instance\n */\nasync function specConsumeBody (object, convertBytesToJSValue, instance) {\n webidl.brandCheck(object, instance)\n\n throwIfAborted(object[kState])\n\n // 1. If object is unusable, then return a promise rejected\n // with a TypeError.\n if (bodyUnusable(object[kState].body)) {\n throw new TypeError('Body is unusable')\n }\n\n // 2. Let promise be a new promise.\n const promise = createDeferredPromise()\n\n // 3. Let errorSteps given error be to reject promise with error.\n const errorSteps = (error) => promise.reject(error)\n\n // 4. Let successSteps given a byte sequence data be to resolve\n // promise with the result of running convertBytesToJSValue\n // with data. If that threw an exception, then run errorSteps\n // with that exception.\n const successSteps = (data) => {\n try {\n promise.resolve(convertBytesToJSValue(data))\n } catch (e) {\n errorSteps(e)\n }\n }\n\n // 5. If object’s body is null, then run successSteps with an\n // empty byte sequence.\n if (object[kState].body == null) {\n successSteps(new Uint8Array())\n return promise.promise\n }\n\n // 6. Otherwise, fully read object’s body given successSteps,\n // errorSteps, and object’s relevant global object.\n await fullyReadBody(object[kState].body, successSteps, errorSteps)\n\n // 7. Return promise.\n return promise.promise\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction bodyUnusable (body) {\n // An object including the Body interface mixin is\n // said to be unusable if its body is non-null and\n // its body’s stream is disturbed or locked.\n return body != null && (body.stream.locked || util.isDisturbed(body.stream))\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#utf-8-decode\n * @param {Buffer} buffer\n */\nfunction utf8DecodeBytes (buffer) {\n if (buffer.length === 0) {\n return ''\n }\n\n // 1. Let buffer be the result of peeking three bytes from\n // ioQueue, converted to a byte sequence.\n\n // 2. If buffer is 0xEF 0xBB 0xBF, then read three\n // bytes from ioQueue. (Do nothing with those bytes.)\n if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {\n buffer = buffer.subarray(3)\n }\n\n // 3. Process a queue with an instance of UTF-8’s\n // decoder, ioQueue, output, and \"replacement\".\n const output = textDecoder.decode(buffer)\n\n // 4. Return output.\n return output\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value\n * @param {Uint8Array} bytes\n */\nfunction parseJSONFromBytes (bytes) {\n return JSON.parse(utf8DecodeBytes(bytes))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-mime-type\n * @param {import('./response').Response|import('./request').Request} object\n */\nfunction bodyMimeType (object) {\n const { headersList } = object[kState]\n const contentType = headersList.get('content-type')\n\n if (contentType === null) {\n return 'failure'\n }\n\n return parseMIMEType(contentType)\n}\n\nmodule.exports = {\n extractBody,\n safelyExtractBody,\n cloneBody,\n mixinBody\n}\n","'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('assert')\nconst { kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = require('./symbols')\nconst util = require('./util')\n\n// tokenRegExp and headerCharRegex have been lifted from\n// https://github.com/nodejs/node/blob/main/lib/_http_common.js\n\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/\n\n/**\n * Matches if val contains an invalid field-vchar\n * field-value = *( field-content / obs-fold )\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n */\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nconst channels = {}\n\nlet extractBody\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.create = diagnosticsChannel.channel('undici:request:create')\n channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent')\n channels.headers = diagnosticsChannel.channel('undici:request:headers')\n channels.trailers = diagnosticsChannel.channel('undici:request:trailers')\n channels.error = diagnosticsChannel.channel('undici:request:error')\n} catch {\n channels.create = { hasSubscribers: false }\n channels.bodySent = { hasSubscribers: false }\n channels.headers = { hasSubscribers: false }\n channels.trailers = { hasSubscribers: false }\n channels.error = { hasSubscribers: false }\n}\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError,\n expectContinue\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.exec(path) !== null) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (tokenRegExp.exec(method) === null) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n if (expectContinue != null && typeof expectContinue !== 'boolean') {\n throw new InvalidArgumentError('invalid expectContinue')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n this.abort = null\n\n if (body == null) {\n this.body = null\n } else if (util.isStream(body)) {\n this.body = body\n\n const rState = this.body._readableState\n if (!rState || !rState.autoDestroy) {\n this.endHandler = function autoDestroy () {\n util.destroy(this)\n }\n this.body.on('end', this.endHandler)\n }\n\n this.errorHandler = err => {\n if (this.abort) {\n this.abort(err)\n } else {\n this.error = err\n }\n }\n this.body.on('error', this.errorHandler)\n } else if (util.isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? util.buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = ''\n\n // Only for H2\n this.expectContinue = expectContinue != null ? expectContinue : false\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(this, key, headers[key])\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n if (util.isFormDataLike(this.body)) {\n if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) {\n throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.')\n }\n\n if (!extractBody) {\n extractBody = require('../fetch/body.js').extractBody\n }\n\n const [bodyStream, contentType] = extractBody(body)\n if (this.contentType == null) {\n this.contentType = contentType\n this.headers += `content-type: ${contentType}\\r\\n`\n }\n this.body = bodyStream.stream\n this.contentLength = bodyStream.length\n } else if (util.isBlobLike(body) && this.contentType == null && body.type) {\n this.contentType = body.type\n this.headers += `content-type: ${body.type}\\r\\n`\n }\n\n util.validateHandler(handler, method, upgrade)\n\n this.servername = util.getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n return this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n\n if (this[kHandler].onRequestSent) {\n try {\n return this[kHandler].onRequestSent()\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (this.error) {\n abort(this.error)\n } else {\n this.abort = abort\n return this[kHandler].onConnect(abort)\n }\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n try {\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n } catch (err) {\n this.abort(err)\n }\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n try {\n return this[kHandler].onData(chunk)\n } catch (err) {\n this.abort(err)\n return false\n }\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n this.onFinally()\n\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n\n try {\n return this[kHandler].onComplete(trailers)\n } catch (err) {\n // TODO (fix): This might be a bad idea?\n this.onError(err)\n }\n }\n\n onError (error) {\n this.onFinally()\n\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n\n return this[kHandler].onError(error)\n }\n\n onFinally () {\n if (this.errorHandler) {\n this.body.off('error', this.errorHandler)\n this.errorHandler = null\n }\n\n if (this.endHandler) {\n this.body.off('end', this.endHandler)\n this.endHandler = null\n }\n }\n\n // TODO: adjust to support H2\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n\n static [kHTTP1BuildRequest] (origin, opts, handler) {\n // TODO: Migrate header parsing here, to make Requests\n // HTTP agnostic\n return new Request(origin, opts, handler)\n }\n\n static [kHTTP2BuildRequest] (origin, opts, handler) {\n const headers = opts.headers\n opts = { ...opts, headers: null }\n\n const request = new Request(origin, opts, handler)\n\n request.headers = {}\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(request, headers[i], headers[i + 1], true)\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(request, key, headers[key], true)\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n return request\n }\n\n static [kHTTP2CopyHeaders] (raw) {\n const rawHeaders = raw.split('\\r\\n')\n const headers = {}\n\n for (const header of rawHeaders) {\n const [key, value] = header.split(': ')\n\n if (value == null || value.length === 0) continue\n\n if (headers[key]) headers[key] += `,${value}`\n else headers[key] = value\n }\n\n return headers\n }\n}\n\nfunction processHeaderValue (key, val, skipAppend) {\n if (val && typeof val === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n val = val != null ? `${val}` : ''\n\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n return skipAppend ? val : `${key}: ${val}\\r\\n`\n}\n\nfunction processHeader (request, key, val, skipAppend = false) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n if (\n request.host === null &&\n key.length === 4 &&\n key.toLowerCase() === 'host'\n ) {\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n // Consumed by Client\n request.host = val\n } else if (\n request.contentLength === null &&\n key.length === 14 &&\n key.toLowerCase() === 'content-length'\n ) {\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (\n request.contentType === null &&\n key.length === 12 &&\n key.toLowerCase() === 'content-type'\n ) {\n request.contentType = val\n if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend)\n else request.headers += processHeaderValue(key, val)\n } else if (\n key.length === 17 &&\n key.toLowerCase() === 'transfer-encoding'\n ) {\n throw new InvalidArgumentError('invalid transfer-encoding header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'connection'\n ) {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n } else if (value === 'close') {\n request.reset = true\n }\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'keep-alive'\n ) {\n throw new InvalidArgumentError('invalid keep-alive header')\n } else if (\n key.length === 7 &&\n key.toLowerCase() === 'upgrade'\n ) {\n throw new InvalidArgumentError('invalid upgrade header')\n } else if (\n key.length === 6 &&\n key.toLowerCase() === 'expect'\n ) {\n throw new NotSupportedError('expect header not supported')\n } else if (tokenRegExp.exec(key) === null) {\n throw new InvalidArgumentError('invalid header key')\n } else {\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i++) {\n if (skipAppend) {\n if (request.headers[key]) request.headers[key] += `,${processHeaderValue(key, val[i], skipAppend)}`\n else request.headers[key] = processHeaderValue(key, val[i], skipAppend)\n } else {\n request.headers += processHeaderValue(key, val[i])\n }\n }\n } else {\n if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend)\n else request.headers += processHeaderValue(key, val)\n }\n }\n}\n\nmodule.exports = Request\n","'use strict'\n\nconst EventEmitter = require('events')\n\nclass Dispatcher extends EventEmitter {\n dispatch () {\n throw new Error('not implemented')\n }\n\n close () {\n throw new Error('not implemented')\n }\n\n destroy () {\n throw new Error('not implemented')\n }\n}\n\nmodule.exports = Dispatcher\n","'use strict'\n\nconst Dispatcher = require('./dispatcher')\nconst {\n ClientDestroyedError,\n ClientClosedError,\n InvalidArgumentError\n} = require('./core/errors')\nconst { kDestroy, kClose, kDispatch, kInterceptors } = require('./core/symbols')\n\nconst kDestroyed = Symbol('destroyed')\nconst kClosed = Symbol('closed')\nconst kOnDestroyed = Symbol('onDestroyed')\nconst kOnClosed = Symbol('onClosed')\nconst kInterceptedDispatch = Symbol('Intercepted Dispatch')\n\nclass DispatcherBase extends Dispatcher {\n constructor () {\n super()\n\n this[kDestroyed] = false\n this[kOnDestroyed] = null\n this[kClosed] = false\n this[kOnClosed] = []\n }\n\n get destroyed () {\n return this[kDestroyed]\n }\n\n get closed () {\n return this[kClosed]\n }\n\n get interceptors () {\n return this[kInterceptors]\n }\n\n set interceptors (newInterceptors) {\n if (newInterceptors) {\n for (let i = newInterceptors.length - 1; i >= 0; i--) {\n const interceptor = this[kInterceptors][i]\n if (typeof interceptor !== 'function') {\n throw new InvalidArgumentError('interceptor must be an function')\n }\n }\n }\n\n this[kInterceptors] = newInterceptors\n }\n\n close (callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.close((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n queueMicrotask(() => callback(new ClientDestroyedError(), null))\n return\n }\n\n if (this[kClosed]) {\n if (this[kOnClosed]) {\n this[kOnClosed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n this[kClosed] = true\n this[kOnClosed].push(callback)\n\n const onClosed = () => {\n const callbacks = this[kOnClosed]\n this[kOnClosed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kClose]()\n .then(() => this.destroy())\n .then(() => {\n queueMicrotask(onClosed)\n })\n }\n\n destroy (err, callback) {\n if (typeof err === 'function') {\n callback = err\n err = null\n }\n\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.destroy(err, (err, data) => {\n return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n if (this[kOnDestroyed]) {\n this[kOnDestroyed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n if (!err) {\n err = new ClientDestroyedError()\n }\n\n this[kDestroyed] = true\n this[kOnDestroyed] = this[kOnDestroyed] || []\n this[kOnDestroyed].push(callback)\n\n const onDestroyed = () => {\n const callbacks = this[kOnDestroyed]\n this[kOnDestroyed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kDestroy](err).then(() => {\n queueMicrotask(onDestroyed)\n })\n }\n\n [kInterceptedDispatch] (opts, handler) {\n if (!this[kInterceptors] || this[kInterceptors].length === 0) {\n this[kInterceptedDispatch] = this[kDispatch]\n return this[kDispatch](opts, handler)\n }\n\n let dispatch = this[kDispatch].bind(this)\n for (let i = this[kInterceptors].length - 1; i >= 0; i--) {\n dispatch = this[kInterceptors][i](dispatch)\n }\n this[kInterceptedDispatch] = dispatch\n return dispatch(opts, handler)\n }\n\n dispatch (opts, handler) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n try {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object.')\n }\n\n if (this[kDestroyed] || this[kOnDestroyed]) {\n throw new ClientDestroyedError()\n }\n\n if (this[kClosed]) {\n throw new ClientClosedError()\n }\n\n return this[kInterceptedDispatch](opts, handler)\n } catch (err) {\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n handler.onError(err)\n\n return false\n }\n }\n}\n\nmodule.exports = DispatcherBase\n","'use strict'\n\nconst net = require('net')\nconst assert = require('assert')\nconst util = require('./util')\nconst { InvalidArgumentError, ConnectTimeoutError } = require('./errors')\n\nlet tls // include tls conditionally since it is not always available\n\n// TODO: session re-use does not wait for the first\n// connection to resolve the session and might therefore\n// resolve the same servername multiple times even when\n// re-use is enabled.\n\nlet SessionCache\n// FIXME: remove workaround when the Node bug is fixed\n// https://github.com/nodejs/node/issues/49344#issuecomment-1741776308\nif (global.FinalizationRegistry && !process.env.NODE_V8_COVERAGE) {\n SessionCache = class WeakSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n this._sessionRegistry = new global.FinalizationRegistry((key) => {\n if (this._sessionCache.size < this._maxCachedSessions) {\n return\n }\n\n const ref = this._sessionCache.get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this._sessionCache.delete(key)\n }\n })\n }\n\n get (sessionKey) {\n const ref = this._sessionCache.get(sessionKey)\n return ref ? ref.deref() : null\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n this._sessionCache.set(sessionKey, new WeakRef(session))\n this._sessionRegistry.register(session, sessionKey)\n }\n }\n} else {\n SessionCache = class SimpleSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n }\n\n get (sessionKey) {\n return this._sessionCache.get(sessionKey)\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n if (this._sessionCache.size >= this._maxCachedSessions) {\n // remove the oldest session\n const { value: oldestKey } = this._sessionCache.keys().next()\n this._sessionCache.delete(oldestKey)\n }\n\n this._sessionCache.set(sessionKey, session)\n }\n }\n}\n\nfunction buildConnector ({ allowH2, maxCachedSessions, socketPath, timeout, ...opts }) {\n if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {\n throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero')\n }\n\n const options = { path: socketPath, ...opts }\n const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions)\n timeout = timeout == null ? 10e3 : timeout\n allowH2 = allowH2 != null ? allowH2 : false\n return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) {\n let socket\n if (protocol === 'https:') {\n if (!tls) {\n tls = require('tls')\n }\n servername = servername || options.servername || util.getServerName(host) || null\n\n const sessionKey = servername || hostname\n const session = sessionCache.get(sessionKey) || null\n\n assert(sessionKey)\n\n socket = tls.connect({\n highWaterMark: 16384, // TLS in node can't have bigger HWM anyway...\n ...options,\n servername,\n session,\n localAddress,\n // TODO(HTTP/2): Add support for h2c\n ALPNProtocols: allowH2 ? ['http/1.1', 'h2'] : ['http/1.1'],\n socket: httpSocket, // upgrade socket connection\n port: port || 443,\n host: hostname\n })\n\n socket\n .on('session', function (session) {\n // TODO (fix): Can a session become invalid once established? Don't think so?\n sessionCache.set(sessionKey, session)\n })\n } else {\n assert(!httpSocket, 'httpSocket can only be sent on TLS update')\n socket = net.connect({\n highWaterMark: 64 * 1024, // Same as nodejs fs streams.\n ...options,\n localAddress,\n port: port || 80,\n host: hostname\n })\n }\n\n // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket\n if (options.keepAlive == null || options.keepAlive) {\n const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay\n socket.setKeepAlive(true, keepAliveInitialDelay)\n }\n\n const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout)\n\n socket\n .setNoDelay(true)\n .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(null, this)\n }\n })\n .on('error', function (err) {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(err)\n }\n })\n\n return socket\n }\n}\n\nfunction setupTimeout (onConnectTimeout, timeout) {\n if (!timeout) {\n return () => {}\n }\n\n let s1 = null\n let s2 = null\n const timeoutId = setTimeout(() => {\n // setImmediate is added to make sure that we priotorise socket error events over timeouts\n s1 = setImmediate(() => {\n if (process.platform === 'win32') {\n // Windows needs an extra setImmediate probably due to implementation differences in the socket logic\n s2 = setImmediate(() => onConnectTimeout())\n } else {\n onConnectTimeout()\n }\n })\n }, timeout)\n return () => {\n clearTimeout(timeoutId)\n clearImmediate(s1)\n clearImmediate(s2)\n }\n}\n\nfunction onConnectTimeout (socket) {\n util.destroy(socket, new ConnectTimeoutError())\n}\n\nmodule.exports = buildConnector\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.enumToMap = void 0;\nfunction enumToMap(obj) {\n const res = {};\n Object.keys(obj).forEach((key) => {\n const value = obj[key];\n if (typeof value === 'number') {\n res[key] = value;\n }\n });\n return res;\n}\nexports.enumToMap = enumToMap;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0;\nconst utils_1 = require(\"./utils\");\n// C headers\nvar ERROR;\n(function (ERROR) {\n ERROR[ERROR[\"OK\"] = 0] = \"OK\";\n ERROR[ERROR[\"INTERNAL\"] = 1] = \"INTERNAL\";\n ERROR[ERROR[\"STRICT\"] = 2] = \"STRICT\";\n ERROR[ERROR[\"LF_EXPECTED\"] = 3] = \"LF_EXPECTED\";\n ERROR[ERROR[\"UNEXPECTED_CONTENT_LENGTH\"] = 4] = \"UNEXPECTED_CONTENT_LENGTH\";\n ERROR[ERROR[\"CLOSED_CONNECTION\"] = 5] = \"CLOSED_CONNECTION\";\n ERROR[ERROR[\"INVALID_METHOD\"] = 6] = \"INVALID_METHOD\";\n ERROR[ERROR[\"INVALID_URL\"] = 7] = \"INVALID_URL\";\n ERROR[ERROR[\"INVALID_CONSTANT\"] = 8] = \"INVALID_CONSTANT\";\n ERROR[ERROR[\"INVALID_VERSION\"] = 9] = \"INVALID_VERSION\";\n ERROR[ERROR[\"INVALID_HEADER_TOKEN\"] = 10] = \"INVALID_HEADER_TOKEN\";\n ERROR[ERROR[\"INVALID_CONTENT_LENGTH\"] = 11] = \"INVALID_CONTENT_LENGTH\";\n ERROR[ERROR[\"INVALID_CHUNK_SIZE\"] = 12] = \"INVALID_CHUNK_SIZE\";\n ERROR[ERROR[\"INVALID_STATUS\"] = 13] = \"INVALID_STATUS\";\n ERROR[ERROR[\"INVALID_EOF_STATE\"] = 14] = \"INVALID_EOF_STATE\";\n ERROR[ERROR[\"INVALID_TRANSFER_ENCODING\"] = 15] = \"INVALID_TRANSFER_ENCODING\";\n ERROR[ERROR[\"CB_MESSAGE_BEGIN\"] = 16] = \"CB_MESSAGE_BEGIN\";\n ERROR[ERROR[\"CB_HEADERS_COMPLETE\"] = 17] = \"CB_HEADERS_COMPLETE\";\n ERROR[ERROR[\"CB_MESSAGE_COMPLETE\"] = 18] = \"CB_MESSAGE_COMPLETE\";\n ERROR[ERROR[\"CB_CHUNK_HEADER\"] = 19] = \"CB_CHUNK_HEADER\";\n ERROR[ERROR[\"CB_CHUNK_COMPLETE\"] = 20] = \"CB_CHUNK_COMPLETE\";\n ERROR[ERROR[\"PAUSED\"] = 21] = \"PAUSED\";\n ERROR[ERROR[\"PAUSED_UPGRADE\"] = 22] = \"PAUSED_UPGRADE\";\n ERROR[ERROR[\"PAUSED_H2_UPGRADE\"] = 23] = \"PAUSED_H2_UPGRADE\";\n ERROR[ERROR[\"USER\"] = 24] = \"USER\";\n})(ERROR = exports.ERROR || (exports.ERROR = {}));\nvar TYPE;\n(function (TYPE) {\n TYPE[TYPE[\"BOTH\"] = 0] = \"BOTH\";\n TYPE[TYPE[\"REQUEST\"] = 1] = \"REQUEST\";\n TYPE[TYPE[\"RESPONSE\"] = 2] = \"RESPONSE\";\n})(TYPE = exports.TYPE || (exports.TYPE = {}));\nvar FLAGS;\n(function (FLAGS) {\n FLAGS[FLAGS[\"CONNECTION_KEEP_ALIVE\"] = 1] = \"CONNECTION_KEEP_ALIVE\";\n FLAGS[FLAGS[\"CONNECTION_CLOSE\"] = 2] = \"CONNECTION_CLOSE\";\n FLAGS[FLAGS[\"CONNECTION_UPGRADE\"] = 4] = \"CONNECTION_UPGRADE\";\n FLAGS[FLAGS[\"CHUNKED\"] = 8] = \"CHUNKED\";\n FLAGS[FLAGS[\"UPGRADE\"] = 16] = \"UPGRADE\";\n FLAGS[FLAGS[\"CONTENT_LENGTH\"] = 32] = \"CONTENT_LENGTH\";\n FLAGS[FLAGS[\"SKIPBODY\"] = 64] = \"SKIPBODY\";\n FLAGS[FLAGS[\"TRAILING\"] = 128] = \"TRAILING\";\n // 1 << 8 is unused\n FLAGS[FLAGS[\"TRANSFER_ENCODING\"] = 512] = \"TRANSFER_ENCODING\";\n})(FLAGS = exports.FLAGS || (exports.FLAGS = {}));\nvar LENIENT_FLAGS;\n(function (LENIENT_FLAGS) {\n LENIENT_FLAGS[LENIENT_FLAGS[\"HEADERS\"] = 1] = \"HEADERS\";\n LENIENT_FLAGS[LENIENT_FLAGS[\"CHUNKED_LENGTH\"] = 2] = \"CHUNKED_LENGTH\";\n LENIENT_FLAGS[LENIENT_FLAGS[\"KEEP_ALIVE\"] = 4] = \"KEEP_ALIVE\";\n})(LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {}));\nvar METHODS;\n(function (METHODS) {\n METHODS[METHODS[\"DELETE\"] = 0] = \"DELETE\";\n METHODS[METHODS[\"GET\"] = 1] = \"GET\";\n METHODS[METHODS[\"HEAD\"] = 2] = \"HEAD\";\n METHODS[METHODS[\"POST\"] = 3] = \"POST\";\n METHODS[METHODS[\"PUT\"] = 4] = \"PUT\";\n /* pathological */\n METHODS[METHODS[\"CONNECT\"] = 5] = \"CONNECT\";\n METHODS[METHODS[\"OPTIONS\"] = 6] = \"OPTIONS\";\n METHODS[METHODS[\"TRACE\"] = 7] = \"TRACE\";\n /* WebDAV */\n METHODS[METHODS[\"COPY\"] = 8] = \"COPY\";\n METHODS[METHODS[\"LOCK\"] = 9] = \"LOCK\";\n METHODS[METHODS[\"MKCOL\"] = 10] = \"MKCOL\";\n METHODS[METHODS[\"MOVE\"] = 11] = \"MOVE\";\n METHODS[METHODS[\"PROPFIND\"] = 12] = \"PROPFIND\";\n METHODS[METHODS[\"PROPPATCH\"] = 13] = \"PROPPATCH\";\n METHODS[METHODS[\"SEARCH\"] = 14] = \"SEARCH\";\n METHODS[METHODS[\"UNLOCK\"] = 15] = \"UNLOCK\";\n METHODS[METHODS[\"BIND\"] = 16] = \"BIND\";\n METHODS[METHODS[\"REBIND\"] = 17] = \"REBIND\";\n METHODS[METHODS[\"UNBIND\"] = 18] = \"UNBIND\";\n METHODS[METHODS[\"ACL\"] = 19] = \"ACL\";\n /* subversion */\n METHODS[METHODS[\"REPORT\"] = 20] = \"REPORT\";\n METHODS[METHODS[\"MKACTIVITY\"] = 21] = \"MKACTIVITY\";\n METHODS[METHODS[\"CHECKOUT\"] = 22] = \"CHECKOUT\";\n METHODS[METHODS[\"MERGE\"] = 23] = \"MERGE\";\n /* upnp */\n METHODS[METHODS[\"M-SEARCH\"] = 24] = \"M-SEARCH\";\n METHODS[METHODS[\"NOTIFY\"] = 25] = \"NOTIFY\";\n METHODS[METHODS[\"SUBSCRIBE\"] = 26] = \"SUBSCRIBE\";\n METHODS[METHODS[\"UNSUBSCRIBE\"] = 27] = \"UNSUBSCRIBE\";\n /* RFC-5789 */\n METHODS[METHODS[\"PATCH\"] = 28] = \"PATCH\";\n METHODS[METHODS[\"PURGE\"] = 29] = \"PURGE\";\n /* CalDAV */\n METHODS[METHODS[\"MKCALENDAR\"] = 30] = \"MKCALENDAR\";\n /* RFC-2068, section 19.6.1.2 */\n METHODS[METHODS[\"LINK\"] = 31] = \"LINK\";\n METHODS[METHODS[\"UNLINK\"] = 32] = \"UNLINK\";\n /* icecast */\n METHODS[METHODS[\"SOURCE\"] = 33] = \"SOURCE\";\n /* RFC-7540, section 11.6 */\n METHODS[METHODS[\"PRI\"] = 34] = \"PRI\";\n /* RFC-2326 RTSP */\n METHODS[METHODS[\"DESCRIBE\"] = 35] = \"DESCRIBE\";\n METHODS[METHODS[\"ANNOUNCE\"] = 36] = \"ANNOUNCE\";\n METHODS[METHODS[\"SETUP\"] = 37] = \"SETUP\";\n METHODS[METHODS[\"PLAY\"] = 38] = \"PLAY\";\n METHODS[METHODS[\"PAUSE\"] = 39] = \"PAUSE\";\n METHODS[METHODS[\"TEARDOWN\"] = 40] = \"TEARDOWN\";\n METHODS[METHODS[\"GET_PARAMETER\"] = 41] = \"GET_PARAMETER\";\n METHODS[METHODS[\"SET_PARAMETER\"] = 42] = \"SET_PARAMETER\";\n METHODS[METHODS[\"REDIRECT\"] = 43] = \"REDIRECT\";\n METHODS[METHODS[\"RECORD\"] = 44] = \"RECORD\";\n /* RAOP */\n METHODS[METHODS[\"FLUSH\"] = 45] = \"FLUSH\";\n})(METHODS = exports.METHODS || (exports.METHODS = {}));\nexports.METHODS_HTTP = [\n METHODS.DELETE,\n METHODS.GET,\n METHODS.HEAD,\n METHODS.POST,\n METHODS.PUT,\n METHODS.CONNECT,\n METHODS.OPTIONS,\n METHODS.TRACE,\n METHODS.COPY,\n METHODS.LOCK,\n METHODS.MKCOL,\n METHODS.MOVE,\n METHODS.PROPFIND,\n METHODS.PROPPATCH,\n METHODS.SEARCH,\n METHODS.UNLOCK,\n METHODS.BIND,\n METHODS.REBIND,\n METHODS.UNBIND,\n METHODS.ACL,\n METHODS.REPORT,\n METHODS.MKACTIVITY,\n METHODS.CHECKOUT,\n METHODS.MERGE,\n METHODS['M-SEARCH'],\n METHODS.NOTIFY,\n METHODS.SUBSCRIBE,\n METHODS.UNSUBSCRIBE,\n METHODS.PATCH,\n METHODS.PURGE,\n METHODS.MKCALENDAR,\n METHODS.LINK,\n METHODS.UNLINK,\n METHODS.PRI,\n // TODO(indutny): should we allow it with HTTP?\n METHODS.SOURCE,\n];\nexports.METHODS_ICE = [\n METHODS.SOURCE,\n];\nexports.METHODS_RTSP = [\n METHODS.OPTIONS,\n METHODS.DESCRIBE,\n METHODS.ANNOUNCE,\n METHODS.SETUP,\n METHODS.PLAY,\n METHODS.PAUSE,\n METHODS.TEARDOWN,\n METHODS.GET_PARAMETER,\n METHODS.SET_PARAMETER,\n METHODS.REDIRECT,\n METHODS.RECORD,\n METHODS.FLUSH,\n // For AirPlay\n METHODS.GET,\n METHODS.POST,\n];\nexports.METHOD_MAP = utils_1.enumToMap(METHODS);\nexports.H_METHOD_MAP = {};\nObject.keys(exports.METHOD_MAP).forEach((key) => {\n if (/^H/.test(key)) {\n exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key];\n }\n});\nvar FINISH;\n(function (FINISH) {\n FINISH[FINISH[\"SAFE\"] = 0] = \"SAFE\";\n FINISH[FINISH[\"SAFE_WITH_CB\"] = 1] = \"SAFE_WITH_CB\";\n FINISH[FINISH[\"UNSAFE\"] = 2] = \"UNSAFE\";\n})(FINISH = exports.FINISH || (exports.FINISH = {}));\nexports.ALPHA = [];\nfor (let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++) {\n // Upper case\n exports.ALPHA.push(String.fromCharCode(i));\n // Lower case\n exports.ALPHA.push(String.fromCharCode(i + 0x20));\n}\nexports.NUM_MAP = {\n 0: 0, 1: 1, 2: 2, 3: 3, 4: 4,\n 5: 5, 6: 6, 7: 7, 8: 8, 9: 9,\n};\nexports.HEX_MAP = {\n 0: 0, 1: 1, 2: 2, 3: 3, 4: 4,\n 5: 5, 6: 6, 7: 7, 8: 8, 9: 9,\n A: 0XA, B: 0XB, C: 0XC, D: 0XD, E: 0XE, F: 0XF,\n a: 0xa, b: 0xb, c: 0xc, d: 0xd, e: 0xe, f: 0xf,\n};\nexports.NUM = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n];\nexports.ALPHANUM = exports.ALPHA.concat(exports.NUM);\nexports.MARK = ['-', '_', '.', '!', '~', '*', '\\'', '(', ')'];\nexports.USERINFO_CHARS = exports.ALPHANUM\n .concat(exports.MARK)\n .concat(['%', ';', ':', '&', '=', '+', '$', ',']);\n// TODO(indutny): use RFC\nexports.STRICT_URL_CHAR = [\n '!', '\"', '$', '%', '&', '\\'',\n '(', ')', '*', '+', ',', '-', '.', '/',\n ':', ';', '<', '=', '>',\n '@', '[', '\\\\', ']', '^', '_',\n '`',\n '{', '|', '}', '~',\n].concat(exports.ALPHANUM);\nexports.URL_CHAR = exports.STRICT_URL_CHAR\n .concat(['\\t', '\\f']);\n// All characters with 0x80 bit set to 1\nfor (let i = 0x80; i <= 0xff; i++) {\n exports.URL_CHAR.push(i);\n}\nexports.HEX = exports.NUM.concat(['a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F']);\n/* Tokens as defined by rfc 2616. Also lowercases them.\n * token = 1*\n * separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n * | \",\" | \";\" | \":\" | \"\\\" | <\">\n * | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n * | \"{\" | \"}\" | SP | HT\n */\nexports.STRICT_TOKEN = [\n '!', '#', '$', '%', '&', '\\'',\n '*', '+', '-', '.',\n '^', '_', '`',\n '|', '~',\n].concat(exports.ALPHANUM);\nexports.TOKEN = exports.STRICT_TOKEN.concat([' ']);\n/*\n * Verify that a char is a valid visible (printable) US-ASCII\n * character or %x80-FF\n */\nexports.HEADER_CHARS = ['\\t'];\nfor (let i = 32; i <= 255; i++) {\n if (i !== 127) {\n exports.HEADER_CHARS.push(i);\n }\n}\n// ',' = \\x44\nexports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44);\nexports.MAJOR = exports.NUM_MAP;\nexports.MINOR = exports.MAJOR;\nvar HEADER_STATE;\n(function (HEADER_STATE) {\n HEADER_STATE[HEADER_STATE[\"GENERAL\"] = 0] = \"GENERAL\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION\"] = 1] = \"CONNECTION\";\n HEADER_STATE[HEADER_STATE[\"CONTENT_LENGTH\"] = 2] = \"CONTENT_LENGTH\";\n HEADER_STATE[HEADER_STATE[\"TRANSFER_ENCODING\"] = 3] = \"TRANSFER_ENCODING\";\n HEADER_STATE[HEADER_STATE[\"UPGRADE\"] = 4] = \"UPGRADE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_KEEP_ALIVE\"] = 5] = \"CONNECTION_KEEP_ALIVE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_CLOSE\"] = 6] = \"CONNECTION_CLOSE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_UPGRADE\"] = 7] = \"CONNECTION_UPGRADE\";\n HEADER_STATE[HEADER_STATE[\"TRANSFER_ENCODING_CHUNKED\"] = 8] = \"TRANSFER_ENCODING_CHUNKED\";\n})(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {}));\nexports.SPECIAL_HEADERS = {\n 'connection': HEADER_STATE.CONNECTION,\n 'content-length': HEADER_STATE.CONTENT_LENGTH,\n 'proxy-connection': HEADER_STATE.CONNECTION,\n 'transfer-encoding': HEADER_STATE.TRANSFER_ENCODING,\n 'upgrade': HEADER_STATE.UPGRADE,\n};\n//# sourceMappingURL=constants.js.map","'use strict'\n\nconst util = require('../core/util')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { InvalidArgumentError } = require('../core/errors')\nconst EE = require('events')\n\nconst redirectableStatusCodes = [300, 301, 302, 303, 307, 308]\n\nconst kBody = Symbol('body')\n\nclass BodyAsyncIterable {\n constructor (body) {\n this[kBody] = body\n this[kBodyUsed] = false\n }\n\n async * [Symbol.asyncIterator] () {\n assert(!this[kBodyUsed], 'disturbed')\n this[kBodyUsed] = true\n yield * this[kBody]\n }\n}\n\nclass RedirectHandler {\n constructor (dispatch, maxRedirections, opts, handler) {\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n util.validateHandler(handler, opts.method, opts.upgrade)\n\n this.dispatch = dispatch\n this.location = null\n this.abort = null\n this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy\n this.maxRedirections = maxRedirections\n this.handler = handler\n this.history = []\n\n if (util.isStream(this.opts.body)) {\n // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp\n // so that it can be dispatched again?\n // TODO (fix): Do we need 100-expect support to provide a way to do this properly?\n if (util.bodyLength(this.opts.body) === 0) {\n this.opts.body\n .on('data', function () {\n assert(false)\n })\n }\n\n if (typeof this.opts.body.readableDidRead !== 'boolean') {\n this.opts.body[kBodyUsed] = false\n EE.prototype.on.call(this.opts.body, 'data', function () {\n this[kBodyUsed] = true\n })\n }\n } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') {\n // TODO (fix): We can't access ReadableStream internal state\n // to determine whether or not it has been disturbed. This is just\n // a workaround.\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n } else if (\n this.opts.body &&\n typeof this.opts.body !== 'string' &&\n !ArrayBuffer.isView(this.opts.body) &&\n util.isIterable(this.opts.body)\n ) {\n // TODO: Should we allow re-using iterable if !this.opts.idempotent\n // or through some other flag?\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n }\n }\n\n onConnect (abort) {\n this.abort = abort\n this.handler.onConnect(abort, { history: this.history })\n }\n\n onUpgrade (statusCode, headers, socket) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n\n onError (error) {\n this.handler.onError(error)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body)\n ? null\n : parseLocation(statusCode, headers)\n\n if (this.opts.origin) {\n this.history.push(new URL(this.opts.path, this.opts.origin))\n }\n\n if (!this.location) {\n return this.handler.onHeaders(statusCode, headers, resume, statusText)\n }\n\n const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)))\n const path = search ? `${pathname}${search}` : pathname\n\n // Remove headers referring to the original URL.\n // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers.\n // https://tools.ietf.org/html/rfc7231#section-6.4\n this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin)\n this.opts.path = path\n this.opts.origin = origin\n this.opts.maxRedirections = 0\n this.opts.query = null\n\n // https://tools.ietf.org/html/rfc7231#section-6.4.4\n // In case of HTTP 303, always replace method to be either HEAD or GET\n if (statusCode === 303 && this.opts.method !== 'HEAD') {\n this.opts.method = 'GET'\n this.opts.body = null\n }\n }\n\n onData (chunk) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response bodies.\n\n Redirection is used to serve the requested resource from another URL, so it is assumes that\n no body is generated (and thus can be ignored). Even though generating a body is not prohibited.\n\n For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually\n (which means it's optional and not mandated) contain just an hyperlink to the value of\n the Location response header, so the body can be ignored safely.\n\n For status 300, which is \"Multiple Choices\", the spec mentions both generating a Location\n response header AND a response body with the other possible location to follow.\n Since the spec explicitily chooses not to specify a format for such body and leave it to\n servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it.\n */\n } else {\n return this.handler.onData(chunk)\n }\n }\n\n onComplete (trailers) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections\n and neither are useful if present.\n\n See comment on onData method above for more detailed informations.\n */\n\n this.location = null\n this.abort = null\n\n this.dispatch(this.opts, this)\n } else {\n this.handler.onComplete(trailers)\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) {\n this.handler.onBodySent(chunk)\n }\n }\n}\n\nfunction parseLocation (statusCode, headers) {\n if (redirectableStatusCodes.indexOf(statusCode) === -1) {\n return null\n }\n\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toString().toLowerCase() === 'location') {\n return headers[i + 1]\n }\n }\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4.4\nfunction shouldRemoveHeader (header, removeContent, unknownOrigin) {\n if (header.length === 4) {\n return util.headerNameToString(header) === 'host'\n }\n if (removeContent && util.headerNameToString(header).startsWith('content-')) {\n return true\n }\n if (unknownOrigin && (header.length === 13 || header.length === 6 || header.length === 19)) {\n const name = util.headerNameToString(header)\n return name === 'authorization' || name === 'cookie' || name === 'proxy-authorization'\n }\n return false\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4\nfunction cleanRequestHeaders (headers, removeContent, unknownOrigin) {\n const ret = []\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) {\n ret.push(headers[i], headers[i + 1])\n }\n }\n } else if (headers && typeof headers === 'object') {\n for (const key of Object.keys(headers)) {\n if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {\n ret.push(key, headers[key])\n }\n }\n } else {\n assert(headers == null, 'headers must be an object or an array')\n }\n return ret\n}\n\nmodule.exports = RedirectHandler\n","'use strict'\n\nconst RedirectHandler = require('../handler/RedirectHandler')\n\nfunction createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) {\n return (dispatch) => {\n return function Intercept (opts, handler) {\n const { maxRedirections = defaultMaxRedirections } = opts\n\n if (!maxRedirections) {\n return dispatch(opts, handler)\n }\n\n const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler)\n opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting.\n return dispatch(opts, redirectHandler)\n }\n }\n}\n\nmodule.exports = createRedirectInterceptor\n","module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCsLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC1kAIABBGGpCADcDACAAQgA3AwAgAEE4akIANwMAIABBMGpCADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwHLAcoBuAHJAbkByAG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAQDcAQtBACEQDMYBC0EOIRAMxQELQQ0hEAzEAQtBDyEQDMMBC0EQIRAMwgELQRMhEAzBAQtBFCEQDMABC0EVIRAMvwELQRYhEAy+AQtBFyEQDL0BC0EYIRAMvAELQRkhEAy7AQtBGiEQDLoBC0EbIRAMuQELQRwhEAy4AQtBCCEQDLcBC0EdIRAMtgELQSAhEAy1AQtBHyEQDLQBC0EHIRAMswELQSEhEAyyAQtBIiEQDLEBC0EeIRAMsAELQSMhEAyvAQtBEiEQDK4BC0ERIRAMrQELQSQhEAysAQtBJSEQDKsBC0EmIRAMqgELQSchEAypAQtBwwEhEAyoAQtBKSEQDKcBC0ErIRAMpgELQSwhEAylAQtBLSEQDKQBC0EuIRAMowELQS8hEAyiAQtBxAEhEAyhAQtBMCEQDKABC0E0IRAMnwELQQwhEAyeAQtBMSEQDJ0BC0EyIRAMnAELQTMhEAybAQtBOSEQDJoBC0E1IRAMmQELQcUBIRAMmAELQQshEAyXAQtBOiEQDJYBC0E2IRAMlQELQQohEAyUAQtBNyEQDJMBC0E4IRAMkgELQTwhEAyRAQtBOyEQDJABC0E9IRAMjwELQQkhEAyOAQtBKCEQDI0BC0E+IRAMjAELQT8hEAyLAQtBwAAhEAyKAQtBwQAhEAyJAQtBwgAhEAyIAQtBwwAhEAyHAQtBxAAhEAyGAQtBxQAhEAyFAQtBxgAhEAyEAQtBKiEQDIMBC0HHACEQDIIBC0HIACEQDIEBC0HJACEQDIABC0HKACEQDH8LQcsAIRAMfgtBzQAhEAx9C0HMACEQDHwLQc4AIRAMewtBzwAhEAx6C0HQACEQDHkLQdEAIRAMeAtB0gAhEAx3C0HTACEQDHYLQdQAIRAMdQtB1gAhEAx0C0HVACEQDHMLQQYhEAxyC0HXACEQDHELQQUhEAxwC0HYACEQDG8LQQQhEAxuC0HZACEQDG0LQdoAIRAMbAtB2wAhEAxrC0HcACEQDGoLQQMhEAxpC0HdACEQDGgLQd4AIRAMZwtB3wAhEAxmC0HhACEQDGULQeAAIRAMZAtB4gAhEAxjC0HjACEQDGILQQIhEAxhC0HkACEQDGALQeUAIRAMXwtB5gAhEAxeC0HnACEQDF0LQegAIRAMXAtB6QAhEAxbC0HqACEQDFoLQesAIRAMWQtB7AAhEAxYC0HtACEQDFcLQe4AIRAMVgtB7wAhEAxVC0HwACEQDFQLQfEAIRAMUwtB8gAhEAxSC0HzACEQDFELQfQAIRAMUAtB9QAhEAxPC0H2ACEQDE4LQfcAIRAMTQtB+AAhEAxMC0H5ACEQDEsLQfoAIRAMSgtB+wAhEAxJC0H8ACEQDEgLQf0AIRAMRwtB/gAhEAxGC0H/ACEQDEULQYABIRAMRAtBgQEhEAxDC0GCASEQDEILQYMBIRAMQQtBhAEhEAxAC0GFASEQDD8LQYYBIRAMPgtBhwEhEAw9C0GIASEQDDwLQYkBIRAMOwtBigEhEAw6C0GLASEQDDkLQYwBIRAMOAtBjQEhEAw3C0GOASEQDDYLQY8BIRAMNQtBkAEhEAw0C0GRASEQDDMLQZIBIRAMMgtBkwEhEAwxC0GUASEQDDALQZUBIRAMLwtBlgEhEAwuC0GXASEQDC0LQZgBIRAMLAtBmQEhEAwrC0GaASEQDCoLQZsBIRAMKQtBnAEhEAwoC0GdASEQDCcLQZ4BIRAMJgtBnwEhEAwlC0GgASEQDCQLQaEBIRAMIwtBogEhEAwiC0GjASEQDCELQaQBIRAMIAtBpQEhEAwfC0GmASEQDB4LQacBIRAMHQtBqAEhEAwcC0GpASEQDBsLQaoBIRAMGgtBqwEhEAwZC0GsASEQDBgLQa0BIRAMFwtBrgEhEAwWC0EBIRAMFQtBrwEhEAwUC0GwASEQDBMLQbEBIRAMEgtBswEhEAwRC0GyASEQDBALQbQBIRAMDwtBtQEhEAwOC0G2ASEQDA0LQbcBIRAMDAtBuAEhEAwLC0G5ASEQDAoLQboBIRAMCQtBuwEhEAwIC0HGASEQDAcLQbwBIRAMBgtBvQEhEAwFC0G+ASEQDAQLQb8BIRAMAwtBwAEhEAwCC0HCASEQDAELQcEBIRALA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQDscBAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxweHyAhIyUoP0BBREVGR0hJSktMTU9QUVJT3gNXWVtcXWBiZWZnaGlqa2xtb3BxcnN0dXZ3eHl6e3x9foABggGFAYYBhwGJAYsBjAGNAY4BjwGQAZEBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAZkCpAKwAv4C/gILIAEiBCACRw3zAUHdASEQDP8DCyABIhAgAkcN3QFBwwEhEAz+AwsgASIBIAJHDZABQfcAIRAM/QMLIAEiASACRw2GAUHvACEQDPwDCyABIgEgAkcNf0HqACEQDPsDCyABIgEgAkcNe0HoACEQDPoDCyABIgEgAkcNeEHmACEQDPkDCyABIgEgAkcNGkEYIRAM+AMLIAEiASACRw0UQRIhEAz3AwsgASIBIAJHDVlBxQAhEAz2AwsgASIBIAJHDUpBPyEQDPUDCyABIgEgAkcNSEE8IRAM9AMLIAEiASACRw1BQTEhEAzzAwsgAC0ALkEBRg3rAwyHAgsgACABIgEgAhDAgICAAEEBRw3mASAAQgA3AyAM5wELIAAgASIBIAIQtICAgAAiEA3nASABIQEM9QILAkAgASIBIAJHDQBBBiEQDPADCyAAIAFBAWoiASACELuAgIAAIhAN6AEgASEBDDELIABCADcDIEESIRAM1QMLIAEiECACRw0rQR0hEAztAwsCQCABIgEgAkYNACABQQFqIQFBECEQDNQDC0EHIRAM7AMLIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN5QFBCCEQDOsDCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEUIRAM0gMLQQkhEAzqAwsgASEBIAApAyBQDeQBIAEhAQzyAgsCQCABIgEgAkcNAEELIRAM6QMLIAAgAUEBaiIBIAIQtoCAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3mASABIQEMDQsgACABIgEgAhC6gICAACIQDecBIAEhAQzwAgsCQCABIgEgAkcNAEEPIRAM5QMLIAEtAAAiEEE7Rg0IIBBBDUcN6AEgAUEBaiEBDO8CCyAAIAEiASACELqAgIAAIhAN6AEgASEBDPICCwNAAkAgAS0AAEHwtYCAAGotAAAiEEEBRg0AIBBBAkcN6wEgACgCBCEQIABBADYCBCAAIBAgAUEBaiIBELmAgIAAIhAN6gEgASEBDPQCCyABQQFqIgEgAkcNAAtBEiEQDOIDCyAAIAEiASACELqAgIAAIhAN6QEgASEBDAoLIAEiASACRw0GQRshEAzgAwsCQCABIgEgAkcNAEEWIRAM4AMLIABBioCAgAA2AgggACABNgIEIAAgASACELiAgIAAIhAN6gEgASEBQSAhEAzGAwsCQCABIgEgAkYNAANAAkAgAS0AAEHwt4CAAGotAAAiEEECRg0AAkAgEEF/ag4E5QHsAQDrAewBCyABQQFqIQFBCCEQDMgDCyABQQFqIgEgAkcNAAtBFSEQDN8DC0EVIRAM3gMLA0ACQCABLQAAQfC5gIAAai0AACIQQQJGDQAgEEF/ag4E3gHsAeAB6wHsAQsgAUEBaiIBIAJHDQALQRghEAzdAwsCQCABIgEgAkYNACAAQYuAgIAANgIIIAAgATYCBCABIQFBByEQDMQDC0EZIRAM3AMLIAFBAWohAQwCCwJAIAEiFCACRw0AQRohEAzbAwsgFCEBAkAgFC0AAEFzag4U3QLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gIA7gILQQAhECAAQQA2AhwgAEGvi4CAADYCECAAQQI2AgwgACAUQQFqNgIUDNoDCwJAIAEtAAAiEEE7Rg0AIBBBDUcN6AEgAUEBaiEBDOUCCyABQQFqIQELQSIhEAy/AwsCQCABIhAgAkcNAEEcIRAM2AMLQgAhESAQIQEgEC0AAEFQag435wHmAQECAwQFBgcIAAAAAAAAAAkKCwwNDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADxAREhMUAAtBHiEQDL0DC0ICIREM5QELQgMhEQzkAQtCBCERDOMBC0IFIREM4gELQgYhEQzhAQtCByERDOABC0IIIREM3wELQgkhEQzeAQtCCiERDN0BC0ILIREM3AELQgwhEQzbAQtCDSERDNoBC0IOIREM2QELQg8hEQzYAQtCCiERDNcBC0ILIREM1gELQgwhEQzVAQtCDSERDNQBC0IOIREM0wELQg8hEQzSAQtCACERAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQLQAAQVBqDjflAeQBAAECAwQFBgfmAeYB5gHmAeYB5gHmAQgJCgsMDeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gEODxAREhPmAQtCAiERDOQBC0IDIREM4wELQgQhEQziAQtCBSERDOEBC0IGIREM4AELQgchEQzfAQtCCCERDN4BC0IJIREM3QELQgohEQzcAQtCCyERDNsBC0IMIREM2gELQg0hEQzZAQtCDiERDNgBC0IPIREM1wELQgohEQzWAQtCCyERDNUBC0IMIREM1AELQg0hEQzTAQtCDiERDNIBC0IPIREM0QELIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN0gFBHyEQDMADCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEkIRAMpwMLQSAhEAy/AwsgACABIhAgAhC+gICAAEF/ag4FtgEAxQIB0QHSAQtBESEQDKQDCyAAQQE6AC8gECEBDLsDCyABIgEgAkcN0gFBJCEQDLsDCyABIg0gAkcNHkHGACEQDLoDCyAAIAEiASACELKAgIAAIhAN1AEgASEBDLUBCyABIhAgAkcNJkHQACEQDLgDCwJAIAEiASACRw0AQSghEAy4AwsgAEEANgIEIABBjICAgAA2AgggACABIAEQsYCAgAAiEA3TASABIQEM2AELAkAgASIQIAJHDQBBKSEQDLcDCyAQLQAAIgFBIEYNFCABQQlHDdMBIBBBAWohAQwVCwJAIAEiASACRg0AIAFBAWohAQwXC0EqIRAMtQMLAkAgASIQIAJHDQBBKyEQDLUDCwJAIBAtAAAiAUEJRg0AIAFBIEcN1QELIAAtACxBCEYN0wEgECEBDJEDCwJAIAEiASACRw0AQSwhEAy0AwsgAS0AAEEKRw3VASABQQFqIQEMyQILIAEiDiACRw3VAUEvIRAMsgMLA0ACQCABLQAAIhBBIEYNAAJAIBBBdmoOBADcAdwBANoBCyABIQEM4AELIAFBAWoiASACRw0AC0ExIRAMsQMLQTIhECABIhQgAkYNsAMgAiAUayAAKAIAIgFqIRUgFCABa0EDaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfC7gIAAai0AAEcNAQJAIAFBA0cNAEEGIQEMlgMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLEDCyAAQQA2AgAgFCEBDNkBC0EzIRAgASIUIAJGDa8DIAIgFGsgACgCACIBaiEVIBQgAWtBCGohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUH0u4CAAGotAABHDQECQCABQQhHDQBBBSEBDJUDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAywAwsgAEEANgIAIBQhAQzYAQtBNCEQIAEiFCACRg2uAyACIBRrIAAoAgAiAWohFSAUIAFrQQVqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw0BAkAgAUEFRw0AQQchAQyUAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMrwMLIABBADYCACAUIQEM1wELAkAgASIBIAJGDQADQAJAIAEtAABBgL6AgABqLQAAIhBBAUYNACAQQQJGDQogASEBDN0BCyABQQFqIgEgAkcNAAtBMCEQDK4DC0EwIRAMrQMLAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AIBBBdmoOBNkB2gHaAdkB2gELIAFBAWoiASACRw0AC0E4IRAMrQMLQTghEAysAwsDQAJAIAEtAAAiEEEgRg0AIBBBCUcNAwsgAUEBaiIBIAJHDQALQTwhEAyrAwsDQAJAIAEtAAAiEEEgRg0AAkACQCAQQXZqDgTaAQEB2gEACyAQQSxGDdsBCyABIQEMBAsgAUEBaiIBIAJHDQALQT8hEAyqAwsgASEBDNsBC0HAACEQIAEiFCACRg2oAyACIBRrIAAoAgAiAWohFiAUIAFrQQZqIRcCQANAIBQtAABBIHIgAUGAwICAAGotAABHDQEgAUEGRg2OAyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAypAwsgAEEANgIAIBQhAQtBNiEQDI4DCwJAIAEiDyACRw0AQcEAIRAMpwMLIABBjICAgAA2AgggACAPNgIEIA8hASAALQAsQX9qDgTNAdUB1wHZAYcDCyABQQFqIQEMzAELAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgciAQIBBBv39qQf8BcUEaSRtB/wFxIhBBCUYNACAQQSBGDQACQAJAAkACQCAQQZ1/ag4TAAMDAwMDAwMBAwMDAwMDAwMDAgMLIAFBAWohAUExIRAMkQMLIAFBAWohAUEyIRAMkAMLIAFBAWohAUEzIRAMjwMLIAEhAQzQAQsgAUEBaiIBIAJHDQALQTUhEAylAwtBNSEQDKQDCwJAIAEiASACRg0AA0ACQCABLQAAQYC8gIAAai0AAEEBRg0AIAEhAQzTAQsgAUEBaiIBIAJHDQALQT0hEAykAwtBPSEQDKMDCyAAIAEiASACELCAgIAAIhAN1gEgASEBDAELIBBBAWohAQtBPCEQDIcDCwJAIAEiASACRw0AQcIAIRAMoAMLAkADQAJAIAEtAABBd2oOGAAC/gL+AoQD/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4CAP4CCyABQQFqIgEgAkcNAAtBwgAhEAygAwsgAUEBaiEBIAAtAC1BAXFFDb0BIAEhAQtBLCEQDIUDCyABIgEgAkcN0wFBxAAhEAydAwsDQAJAIAEtAABBkMCAgABqLQAAQQFGDQAgASEBDLcCCyABQQFqIgEgAkcNAAtBxQAhEAycAwsgDS0AACIQQSBGDbMBIBBBOkcNgQMgACgCBCEBIABBADYCBCAAIAEgDRCvgICAACIBDdABIA1BAWohAQyzAgtBxwAhECABIg0gAkYNmgMgAiANayAAKAIAIgFqIRYgDSABa0EFaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGQwoCAAGotAABHDYADIAFBBUYN9AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmgMLQcgAIRAgASINIAJGDZkDIAIgDWsgACgCACIBaiEWIA0gAWtBCWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBlsKAgABqLQAARw3/AgJAIAFBCUcNAEECIQEM9QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJkDCwJAIAEiDSACRw0AQckAIRAMmQMLAkACQCANLQAAIgFBIHIgASABQb9/akH/AXFBGkkbQf8BcUGSf2oOBwCAA4ADgAOAA4ADAYADCyANQQFqIQFBPiEQDIADCyANQQFqIQFBPyEQDP8CC0HKACEQIAEiDSACRg2XAyACIA1rIAAoAgAiAWohFiANIAFrQQFqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaDCgIAAai0AAEcN/QIgAUEBRg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyXAwtBywAhECABIg0gAkYNlgMgAiANayAAKAIAIgFqIRYgDSABa0EOaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGiwoCAAGotAABHDfwCIAFBDkYN8AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlgMLQcwAIRAgASINIAJGDZUDIAIgDWsgACgCACIBaiEWIA0gAWtBD2ohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBwMKAgABqLQAARw37AgJAIAFBD0cNAEEDIQEM8QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJUDC0HNACEQIAEiDSACRg2UAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQdDCgIAAai0AAEcN+gICQCABQQVHDQBBBCEBDPACCyABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyUAwsCQCABIg0gAkcNAEHOACEQDJQDCwJAAkACQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZ1/ag4TAP0C/QL9Av0C/QL9Av0C/QL9Av0C/QL9AgH9Av0C/QICA/0CCyANQQFqIQFBwQAhEAz9AgsgDUEBaiEBQcIAIRAM/AILIA1BAWohAUHDACEQDPsCCyANQQFqIQFBxAAhEAz6AgsCQCABIgEgAkYNACAAQY2AgIAANgIIIAAgATYCBCABIQFBxQAhEAz6AgtBzwAhEAySAwsgECEBAkACQCAQLQAAQXZqDgQBqAKoAgCoAgsgEEEBaiEBC0EnIRAM+AILAkAgASIBIAJHDQBB0QAhEAyRAwsCQCABLQAAQSBGDQAgASEBDI0BCyABQQFqIQEgAC0ALUEBcUUNxwEgASEBDIwBCyABIhcgAkcNyAFB0gAhEAyPAwtB0wAhECABIhQgAkYNjgMgAiAUayAAKAIAIgFqIRYgFCABa0EBaiEXA0AgFC0AACABQdbCgIAAai0AAEcNzAEgAUEBRg3HASABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAyOAwsCQCABIgEgAkcNAEHVACEQDI4DCyABLQAAQQpHDcwBIAFBAWohAQzHAQsCQCABIgEgAkcNAEHWACEQDI0DCwJAAkAgAS0AAEF2ag4EAM0BzQEBzQELIAFBAWohAQzHAQsgAUEBaiEBQcoAIRAM8wILIAAgASIBIAIQroCAgAAiEA3LASABIQFBzQAhEAzyAgsgAC0AKUEiRg2FAwymAgsCQCABIgEgAkcNAEHbACEQDIoDC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgAS0AAEFQag4K1AHTAQABAgMEBQYI1QELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMzAELQQkhEEEBIRRBACEXQQAhFgzLAQsCQCABIgEgAkcNAEHdACEQDIkDCyABLQAAQS5HDcwBIAFBAWohAQymAgsgASIBIAJHDcwBQd8AIRAMhwMLAkAgASIBIAJGDQAgAEGOgICAADYCCCAAIAE2AgQgASEBQdAAIRAM7gILQeAAIRAMhgMLQeEAIRAgASIBIAJGDYUDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHiwoCAAGotAABHDc0BIBRBA0YNzAEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhQMLQeIAIRAgASIBIAJGDYQDIAIgAWsgACgCACIUaiEWIAEgFGtBAmohFwNAIAEtAAAgFEHmwoCAAGotAABHDcwBIBRBAkYNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhAMLQeMAIRAgASIBIAJGDYMDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHpwoCAAGotAABHDcsBIBRBA0YNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMgwMLAkAgASIBIAJHDQBB5QAhEAyDAwsgACABQQFqIgEgAhCogICAACIQDc0BIAEhAUHWACEQDOkCCwJAIAEiASACRg0AA0ACQCABLQAAIhBBIEYNAAJAAkACQCAQQbh/ag4LAAHPAc8BzwHPAc8BzwHPAc8BAs8BCyABQQFqIQFB0gAhEAztAgsgAUEBaiEBQdMAIRAM7AILIAFBAWohAUHUACEQDOsCCyABQQFqIgEgAkcNAAtB5AAhEAyCAwtB5AAhEAyBAwsDQAJAIAEtAABB8MKAgABqLQAAIhBBAUYNACAQQX5qDgPPAdAB0QHSAQsgAUEBaiIBIAJHDQALQeYAIRAMgAMLAkAgASIBIAJGDQAgAUEBaiEBDAMLQecAIRAM/wILA0ACQCABLQAAQfDEgIAAai0AACIQQQFGDQACQCAQQX5qDgTSAdMB1AEA1QELIAEhAUHXACEQDOcCCyABQQFqIgEgAkcNAAtB6AAhEAz+AgsCQCABIgEgAkcNAEHpACEQDP4CCwJAIAEtAAAiEEF2ag4augHVAdUBvAHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHKAdUB1QEA0wELIAFBAWohAQtBBiEQDOMCCwNAAkAgAS0AAEHwxoCAAGotAABBAUYNACABIQEMngILIAFBAWoiASACRw0AC0HqACEQDPsCCwJAIAEiASACRg0AIAFBAWohAQwDC0HrACEQDPoCCwJAIAEiASACRw0AQewAIRAM+gILIAFBAWohAQwBCwJAIAEiASACRw0AQe0AIRAM+QILIAFBAWohAQtBBCEQDN4CCwJAIAEiFCACRw0AQe4AIRAM9wILIBQhAQJAAkACQCAULQAAQfDIgIAAai0AAEF/ag4H1AHVAdYBAJwCAQLXAQsgFEEBaiEBDAoLIBRBAWohAQzNAQtBACEQIABBADYCHCAAQZuSgIAANgIQIABBBzYCDCAAIBRBAWo2AhQM9gILAkADQAJAIAEtAABB8MiAgABqLQAAIhBBBEYNAAJAAkAgEEF/ag4H0gHTAdQB2QEABAHZAQsgASEBQdoAIRAM4AILIAFBAWohAUHcACEQDN8CCyABQQFqIgEgAkcNAAtB7wAhEAz2AgsgAUEBaiEBDMsBCwJAIAEiFCACRw0AQfAAIRAM9QILIBQtAABBL0cN1AEgFEEBaiEBDAYLAkAgASIUIAJHDQBB8QAhEAz0AgsCQCAULQAAIgFBL0cNACAUQQFqIQFB3QAhEAzbAgsgAUF2aiIEQRZLDdMBQQEgBHRBiYCAAnFFDdMBDMoCCwJAIAEiASACRg0AIAFBAWohAUHeACEQDNoCC0HyACEQDPICCwJAIAEiFCACRw0AQfQAIRAM8gILIBQhAQJAIBQtAABB8MyAgABqLQAAQX9qDgPJApQCANQBC0HhACEQDNgCCwJAIAEiFCACRg0AA0ACQCAULQAAQfDKgIAAai0AACIBQQNGDQACQCABQX9qDgLLAgDVAQsgFCEBQd8AIRAM2gILIBRBAWoiFCACRw0AC0HzACEQDPECC0HzACEQDPACCwJAIAEiASACRg0AIABBj4CAgAA2AgggACABNgIEIAEhAUHgACEQDNcCC0H1ACEQDO8CCwJAIAEiASACRw0AQfYAIRAM7wILIABBj4CAgAA2AgggACABNgIEIAEhAQtBAyEQDNQCCwNAIAEtAABBIEcNwwIgAUEBaiIBIAJHDQALQfcAIRAM7AILAkAgASIBIAJHDQBB+AAhEAzsAgsgAS0AAEEgRw3OASABQQFqIQEM7wELIAAgASIBIAIQrICAgAAiEA3OASABIQEMjgILAkAgASIEIAJHDQBB+gAhEAzqAgsgBC0AAEHMAEcN0QEgBEEBaiEBQRMhEAzPAQsCQCABIgQgAkcNAEH7ACEQDOkCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRADQCAELQAAIAFB8M6AgABqLQAARw3QASABQQVGDc4BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQfsAIRAM6AILAkAgASIEIAJHDQBB/AAhEAzoAgsCQAJAIAQtAABBvX9qDgwA0QHRAdEB0QHRAdEB0QHRAdEB0QEB0QELIARBAWohAUHmACEQDM8CCyAEQQFqIQFB5wAhEAzOAgsCQCABIgQgAkcNAEH9ACEQDOcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDc8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH9ACEQDOcCCyAAQQA2AgAgEEEBaiEBQRAhEAzMAQsCQCABIgQgAkcNAEH+ACEQDOYCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUH2zoCAAGotAABHDc4BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH+ACEQDOYCCyAAQQA2AgAgEEEBaiEBQRYhEAzLAQsCQCABIgQgAkcNAEH/ACEQDOUCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUH8zoCAAGotAABHDc0BIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH/ACEQDOUCCyAAQQA2AgAgEEEBaiEBQQUhEAzKAQsCQCABIgQgAkcNAEGAASEQDOQCCyAELQAAQdkARw3LASAEQQFqIQFBCCEQDMkBCwJAIAEiBCACRw0AQYEBIRAM4wILAkACQCAELQAAQbJ/ag4DAMwBAcwBCyAEQQFqIQFB6wAhEAzKAgsgBEEBaiEBQewAIRAMyQILAkAgASIEIAJHDQBBggEhEAziAgsCQAJAIAQtAABBuH9qDggAywHLAcsBywHLAcsBAcsBCyAEQQFqIQFB6gAhEAzJAgsgBEEBaiEBQe0AIRAMyAILAkAgASIEIAJHDQBBgwEhEAzhAgsgAiAEayAAKAIAIgFqIRAgBCABa0ECaiEUAkADQCAELQAAIAFBgM+AgABqLQAARw3JASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBA2AgBBgwEhEAzhAgtBACEQIABBADYCACAUQQFqIQEMxgELAkAgASIEIAJHDQBBhAEhEAzgAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBg8+AgABqLQAARw3IASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhAEhEAzgAgsgAEEANgIAIBBBAWohAUEjIRAMxQELAkAgASIEIAJHDQBBhQEhEAzfAgsCQAJAIAQtAABBtH9qDggAyAHIAcgByAHIAcgBAcgBCyAEQQFqIQFB7wAhEAzGAgsgBEEBaiEBQfAAIRAMxQILAkAgASIEIAJHDQBBhgEhEAzeAgsgBC0AAEHFAEcNxQEgBEEBaiEBDIMCCwJAIAEiBCACRw0AQYcBIRAM3QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQYjPgIAAai0AAEcNxQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYcBIRAM3QILIABBADYCACAQQQFqIQFBLSEQDMIBCwJAIAEiBCACRw0AQYgBIRAM3AILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNxAEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYgBIRAM3AILIABBADYCACAQQQFqIQFBKSEQDMEBCwJAIAEiASACRw0AQYkBIRAM2wILQQEhECABLQAAQd8ARw3AASABQQFqIQEMgQILAkAgASIEIAJHDQBBigEhEAzaAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQA0AgBC0AACABQYzPgIAAai0AAEcNwQEgAUEBRg2vAiABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGKASEQDNkCCwJAIAEiBCACRw0AQYsBIRAM2QILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQY7PgIAAai0AAEcNwQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYsBIRAM2QILIABBADYCACAQQQFqIQFBAiEQDL4BCwJAIAEiBCACRw0AQYwBIRAM2AILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNwAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYwBIRAM2AILIABBADYCACAQQQFqIQFBHyEQDL0BCwJAIAEiBCACRw0AQY0BIRAM1wILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNvwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY0BIRAM1wILIABBADYCACAQQQFqIQFBCSEQDLwBCwJAIAEiBCACRw0AQY4BIRAM1gILAkACQCAELQAAQbd/ag4HAL8BvwG/Ab8BvwEBvwELIARBAWohAUH4ACEQDL0CCyAEQQFqIQFB+QAhEAy8AgsCQCABIgQgAkcNAEGPASEQDNUCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGRz4CAAGotAABHDb0BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGPASEQDNUCCyAAQQA2AgAgEEEBaiEBQRghEAy6AQsCQCABIgQgAkcNAEGQASEQDNQCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUGXz4CAAGotAABHDbwBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGQASEQDNQCCyAAQQA2AgAgEEEBaiEBQRchEAy5AQsCQCABIgQgAkcNAEGRASEQDNMCCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUGaz4CAAGotAABHDbsBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGRASEQDNMCCyAAQQA2AgAgEEEBaiEBQRUhEAy4AQsCQCABIgQgAkcNAEGSASEQDNICCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGhz4CAAGotAABHDboBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGSASEQDNICCyAAQQA2AgAgEEEBaiEBQR4hEAy3AQsCQCABIgQgAkcNAEGTASEQDNECCyAELQAAQcwARw24ASAEQQFqIQFBCiEQDLYBCwJAIAQgAkcNAEGUASEQDNACCwJAAkAgBC0AAEG/f2oODwC5AbkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AQG5AQsgBEEBaiEBQf4AIRAMtwILIARBAWohAUH/ACEQDLYCCwJAIAQgAkcNAEGVASEQDM8CCwJAAkAgBC0AAEG/f2oOAwC4AQG4AQsgBEEBaiEBQf0AIRAMtgILIARBAWohBEGAASEQDLUCCwJAIAQgAkcNAEGWASEQDM4CCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUGnz4CAAGotAABHDbYBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGWASEQDM4CCyAAQQA2AgAgEEEBaiEBQQshEAyzAQsCQCAEIAJHDQBBlwEhEAzNAgsCQAJAAkACQCAELQAAQVNqDiMAuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AQG4AbgBuAG4AbgBArgBuAG4AQO4AQsgBEEBaiEBQfsAIRAMtgILIARBAWohAUH8ACEQDLUCCyAEQQFqIQRBgQEhEAy0AgsgBEEBaiEEQYIBIRAMswILAkAgBCACRw0AQZgBIRAMzAILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQanPgIAAai0AAEcNtAEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZgBIRAMzAILIABBADYCACAQQQFqIQFBGSEQDLEBCwJAIAQgAkcNAEGZASEQDMsCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGuz4CAAGotAABHDbMBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGZASEQDMsCCyAAQQA2AgAgEEEBaiEBQQYhEAywAQsCQCAEIAJHDQBBmgEhEAzKAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBtM+AgABqLQAARw2yASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmgEhEAzKAgsgAEEANgIAIBBBAWohAUEcIRAMrwELAkAgBCACRw0AQZsBIRAMyQILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbbPgIAAai0AAEcNsQEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZsBIRAMyQILIABBADYCACAQQQFqIQFBJyEQDK4BCwJAIAQgAkcNAEGcASEQDMgCCwJAAkAgBC0AAEGsf2oOAgABsQELIARBAWohBEGGASEQDK8CCyAEQQFqIQRBhwEhEAyuAgsCQCAEIAJHDQBBnQEhEAzHAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBuM+AgABqLQAARw2vASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBnQEhEAzHAgsgAEEANgIAIBBBAWohAUEmIRAMrAELAkAgBCACRw0AQZ4BIRAMxgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbrPgIAAai0AAEcNrgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ4BIRAMxgILIABBADYCACAQQQFqIQFBAyEQDKsBCwJAIAQgAkcNAEGfASEQDMUCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDa0BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGfASEQDMUCCyAAQQA2AgAgEEEBaiEBQQwhEAyqAQsCQCAEIAJHDQBBoAEhEAzEAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBvM+AgABqLQAARw2sASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBoAEhEAzEAgsgAEEANgIAIBBBAWohAUENIRAMqQELAkAgBCACRw0AQaEBIRAMwwILAkACQCAELQAAQbp/ag4LAKwBrAGsAawBrAGsAawBrAGsAQGsAQsgBEEBaiEEQYsBIRAMqgILIARBAWohBEGMASEQDKkCCwJAIAQgAkcNAEGiASEQDMICCyAELQAAQdAARw2pASAEQQFqIQQM6QELAkAgBCACRw0AQaMBIRAMwQILAkACQCAELQAAQbd/ag4HAaoBqgGqAaoBqgEAqgELIARBAWohBEGOASEQDKgCCyAEQQFqIQFBIiEQDKYBCwJAIAQgAkcNAEGkASEQDMACCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHAz4CAAGotAABHDagBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGkASEQDMACCyAAQQA2AgAgEEEBaiEBQR0hEAylAQsCQCAEIAJHDQBBpQEhEAy/AgsCQAJAIAQtAABBrn9qDgMAqAEBqAELIARBAWohBEGQASEQDKYCCyAEQQFqIQFBBCEQDKQBCwJAIAQgAkcNAEGmASEQDL4CCwJAAkACQAJAAkAgBC0AAEG/f2oOFQCqAaoBqgGqAaoBqgGqAaoBqgGqAQGqAaoBAqoBqgEDqgGqAQSqAQsgBEEBaiEEQYgBIRAMqAILIARBAWohBEGJASEQDKcCCyAEQQFqIQRBigEhEAymAgsgBEEBaiEEQY8BIRAMpQILIARBAWohBEGRASEQDKQCCwJAIAQgAkcNAEGnASEQDL0CCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDaUBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGnASEQDL0CCyAAQQA2AgAgEEEBaiEBQREhEAyiAQsCQCAEIAJHDQBBqAEhEAy8AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBws+AgABqLQAARw2kASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqAEhEAy8AgsgAEEANgIAIBBBAWohAUEsIRAMoQELAkAgBCACRw0AQakBIRAMuwILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQcXPgIAAai0AAEcNowEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQakBIRAMuwILIABBADYCACAQQQFqIQFBKyEQDKABCwJAIAQgAkcNAEGqASEQDLoCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHKz4CAAGotAABHDaIBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGqASEQDLoCCyAAQQA2AgAgEEEBaiEBQRQhEAyfAQsCQCAEIAJHDQBBqwEhEAy5AgsCQAJAAkACQCAELQAAQb5/ag4PAAECpAGkAaQBpAGkAaQBpAGkAaQBpAGkAQOkAQsgBEEBaiEEQZMBIRAMogILIARBAWohBEGUASEQDKECCyAEQQFqIQRBlQEhEAygAgsgBEEBaiEEQZYBIRAMnwILAkAgBCACRw0AQawBIRAMuAILIAQtAABBxQBHDZ8BIARBAWohBAzgAQsCQCAEIAJHDQBBrQEhEAy3AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBzc+AgABqLQAARw2fASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrQEhEAy3AgsgAEEANgIAIBBBAWohAUEOIRAMnAELAkAgBCACRw0AQa4BIRAMtgILIAQtAABB0ABHDZ0BIARBAWohAUElIRAMmwELAkAgBCACRw0AQa8BIRAMtQILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNnQEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQa8BIRAMtQILIABBADYCACAQQQFqIQFBKiEQDJoBCwJAIAQgAkcNAEGwASEQDLQCCwJAAkAgBC0AAEGrf2oOCwCdAZ0BnQGdAZ0BnQGdAZ0BnQEBnQELIARBAWohBEGaASEQDJsCCyAEQQFqIQRBmwEhEAyaAgsCQCAEIAJHDQBBsQEhEAyzAgsCQAJAIAQtAABBv39qDhQAnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBAZwBCyAEQQFqIQRBmQEhEAyaAgsgBEEBaiEEQZwBIRAMmQILAkAgBCACRw0AQbIBIRAMsgILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQdnPgIAAai0AAEcNmgEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbIBIRAMsgILIABBADYCACAQQQFqIQFBISEQDJcBCwJAIAQgAkcNAEGzASEQDLECCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUHdz4CAAGotAABHDZkBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGzASEQDLECCyAAQQA2AgAgEEEBaiEBQRohEAyWAQsCQCAEIAJHDQBBtAEhEAywAgsCQAJAAkAgBC0AAEG7f2oOEQCaAZoBmgGaAZoBmgGaAZoBmgEBmgGaAZoBmgGaAQKaAQsgBEEBaiEEQZ0BIRAMmAILIARBAWohBEGeASEQDJcCCyAEQQFqIQRBnwEhEAyWAgsCQCAEIAJHDQBBtQEhEAyvAgsgAiAEayAAKAIAIgFqIRQgBCABa0EFaiEQAkADQCAELQAAIAFB5M+AgABqLQAARw2XASABQQVGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtQEhEAyvAgsgAEEANgIAIBBBAWohAUEoIRAMlAELAkAgBCACRw0AQbYBIRAMrgILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQerPgIAAai0AAEcNlgEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbYBIRAMrgILIABBADYCACAQQQFqIQFBByEQDJMBCwJAIAQgAkcNAEG3ASEQDK0CCwJAAkAgBC0AAEG7f2oODgCWAZYBlgGWAZYBlgGWAZYBlgGWAZYBlgEBlgELIARBAWohBEGhASEQDJQCCyAEQQFqIQRBogEhEAyTAgsCQCAEIAJHDQBBuAEhEAysAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB7c+AgABqLQAARw2UASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuAEhEAysAgsgAEEANgIAIBBBAWohAUESIRAMkQELAkAgBCACRw0AQbkBIRAMqwILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNkwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbkBIRAMqwILIABBADYCACAQQQFqIQFBICEQDJABCwJAIAQgAkcNAEG6ASEQDKoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHyz4CAAGotAABHDZIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG6ASEQDKoCCyAAQQA2AgAgEEEBaiEBQQ8hEAyPAQsCQCAEIAJHDQBBuwEhEAypAgsCQAJAIAQtAABBt39qDgcAkgGSAZIBkgGSAQGSAQsgBEEBaiEEQaUBIRAMkAILIARBAWohBEGmASEQDI8CCwJAIAQgAkcNAEG8ASEQDKgCCyACIARrIAAoAgAiAWohFCAEIAFrQQdqIRACQANAIAQtAAAgAUH0z4CAAGotAABHDZABIAFBB0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG8ASEQDKgCCyAAQQA2AgAgEEEBaiEBQRshEAyNAQsCQCAEIAJHDQBBvQEhEAynAgsCQAJAAkAgBC0AAEG+f2oOEgCRAZEBkQGRAZEBkQGRAZEBkQEBkQGRAZEBkQGRAZEBApEBCyAEQQFqIQRBpAEhEAyPAgsgBEEBaiEEQacBIRAMjgILIARBAWohBEGoASEQDI0CCwJAIAQgAkcNAEG+ASEQDKYCCyAELQAAQc4ARw2NASAEQQFqIQQMzwELAkAgBCACRw0AQb8BIRAMpQILAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBC0AAEG/f2oOFQABAgOcAQQFBpwBnAGcAQcICQoLnAEMDQ4PnAELIARBAWohAUHoACEQDJoCCyAEQQFqIQFB6QAhEAyZAgsgBEEBaiEBQe4AIRAMmAILIARBAWohAUHyACEQDJcCCyAEQQFqIQFB8wAhEAyWAgsgBEEBaiEBQfYAIRAMlQILIARBAWohAUH3ACEQDJQCCyAEQQFqIQFB+gAhEAyTAgsgBEEBaiEEQYMBIRAMkgILIARBAWohBEGEASEQDJECCyAEQQFqIQRBhQEhEAyQAgsgBEEBaiEEQZIBIRAMjwILIARBAWohBEGYASEQDI4CCyAEQQFqIQRBoAEhEAyNAgsgBEEBaiEEQaMBIRAMjAILIARBAWohBEGqASEQDIsCCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEGrASEQDIsCC0HAASEQDKMCCyAAIAUgAhCqgICAACIBDYsBIAUhAQxcCwJAIAYgAkYNACAGQQFqIQUMjQELQcIBIRAMoQILA0ACQCAQLQAAQXZqDgSMAQAAjwEACyAQQQFqIhAgAkcNAAtBwwEhEAygAgsCQCAHIAJGDQAgAEGRgICAADYCCCAAIAc2AgQgByEBQQEhEAyHAgtBxAEhEAyfAgsCQCAHIAJHDQBBxQEhEAyfAgsCQAJAIActAABBdmoOBAHOAc4BAM4BCyAHQQFqIQYMjQELIAdBAWohBQyJAQsCQCAHIAJHDQBBxgEhEAyeAgsCQAJAIActAABBdmoOFwGPAY8BAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAQCPAQsgB0EBaiEHC0GwASEQDIQCCwJAIAggAkcNAEHIASEQDJ0CCyAILQAAQSBHDY0BIABBADsBMiAIQQFqIQFBswEhEAyDAgsgASEXAkADQCAXIgcgAkYNASAHLQAAQVBqQf8BcSIQQQpPDcwBAkAgAC8BMiIUQZkzSw0AIAAgFEEKbCIUOwEyIBBB//8DcyAUQf7/A3FJDQAgB0EBaiEXIAAgFCAQaiIQOwEyIBBB//8DcUHoB0kNAQsLQQAhECAAQQA2AhwgAEHBiYCAADYCECAAQQ02AgwgACAHQQFqNgIUDJwCC0HHASEQDJsCCyAAIAggAhCugICAACIQRQ3KASAQQRVHDYwBIABByAE2AhwgACAINgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAyaAgsCQCAJIAJHDQBBzAEhEAyaAgtBACEUQQEhF0EBIRZBACEQAkACQAJAAkACQAJAAkACQAJAIAktAABBUGoOCpYBlQEAAQIDBAUGCJcBC0ECIRAMBgtBAyEQDAULQQQhEAwEC0EFIRAMAwtBBiEQDAILQQchEAwBC0EIIRALQQAhF0EAIRZBACEUDI4BC0EJIRBBASEUQQAhF0EAIRYMjQELAkAgCiACRw0AQc4BIRAMmQILIAotAABBLkcNjgEgCkEBaiEJDMoBCyALIAJHDY4BQdABIRAMlwILAkAgCyACRg0AIABBjoCAgAA2AgggACALNgIEQbcBIRAM/gELQdEBIRAMlgILAkAgBCACRw0AQdIBIRAMlgILIAIgBGsgACgCACIQaiEUIAQgEGtBBGohCwNAIAQtAAAgEEH8z4CAAGotAABHDY4BIBBBBEYN6QEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB0gEhEAyVAgsgACAMIAIQrICAgAAiAQ2NASAMIQEMuAELAkAgBCACRw0AQdQBIRAMlAILIAIgBGsgACgCACIQaiEUIAQgEGtBAWohDANAIAQtAAAgEEGB0ICAAGotAABHDY8BIBBBAUYNjgEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB1AEhEAyTAgsCQCAEIAJHDQBB1gEhEAyTAgsgAiAEayAAKAIAIhBqIRQgBCAQa0ECaiELA0AgBC0AACAQQYPQgIAAai0AAEcNjgEgEEECRg2QASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHWASEQDJICCwJAIAQgAkcNAEHXASEQDJICCwJAAkAgBC0AAEG7f2oOEACPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAY8BCyAEQQFqIQRBuwEhEAz5AQsgBEEBaiEEQbwBIRAM+AELAkAgBCACRw0AQdgBIRAMkQILIAQtAABByABHDYwBIARBAWohBAzEAQsCQCAEIAJGDQAgAEGQgICAADYCCCAAIAQ2AgRBvgEhEAz3AQtB2QEhEAyPAgsCQCAEIAJHDQBB2gEhEAyPAgsgBC0AAEHIAEYNwwEgAEEBOgAoDLkBCyAAQQI6AC8gACAEIAIQpoCAgAAiEA2NAUHCASEQDPQBCyAALQAoQX9qDgK3AbkBuAELA0ACQCAELQAAQXZqDgQAjgGOAQCOAQsgBEEBaiIEIAJHDQALQd0BIRAMiwILIABBADoALyAALQAtQQRxRQ2EAgsgAEEAOgAvIABBAToANCABIQEMjAELIBBBFUYN2gEgAEEANgIcIAAgATYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMiAILAkAgACAQIAIQtICAgAAiBA0AIBAhAQyBAgsCQCAEQRVHDQAgAEEDNgIcIAAgEDYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMiAILIABBADYCHCAAIBA2AhQgAEGnjoCAADYCECAAQRI2AgxBACEQDIcCCyAQQRVGDdYBIABBADYCHCAAIAE2AhQgAEHajYCAADYCECAAQRQ2AgxBACEQDIYCCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNjQEgAEEHNgIcIAAgEDYCFCAAIBQ2AgxBACEQDIUCCyAAIAAvATBBgAFyOwEwIAEhAQtBKiEQDOoBCyAQQRVGDdEBIABBADYCHCAAIAE2AhQgAEGDjICAADYCECAAQRM2AgxBACEQDIICCyAQQRVGDc8BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDIECCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyNAQsgAEEMNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDIACCyAQQRVGDcwBIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDP8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyMAQsgAEENNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDP4BCyAQQRVGDckBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDP0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyLAQsgAEEONgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPwBCyAAQQA2AhwgACABNgIUIABBwJWAgAA2AhAgAEECNgIMQQAhEAz7AQsgEEEVRg3FASAAQQA2AhwgACABNgIUIABBxoyAgAA2AhAgAEEjNgIMQQAhEAz6AQsgAEEQNgIcIAAgATYCFCAAIBA2AgxBACEQDPkBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQzxAQsgAEERNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPgBCyAQQRVGDcEBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPcBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyIAQsgAEETNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPYBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQztAQsgAEEUNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPUBCyAQQRVGDb0BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDPQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyGAQsgAEEWNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPMBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQt4CAgAAiBA0AIAFBAWohAQzpAQsgAEEXNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPIBCyAAQQA2AhwgACABNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzxAQtCASERCyAQQQFqIQECQCAAKQMgIhJC//////////8PVg0AIAAgEkIEhiARhDcDICABIQEMhAELIABBADYCHCAAIAE2AhQgAEGtiYCAADYCECAAQQw2AgxBACEQDO8BCyAAQQA2AhwgACAQNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzuAQsgACgCBCEXIABBADYCBCAQIBGnaiIWIQEgACAXIBAgFiAUGyIQELWAgIAAIhRFDXMgAEEFNgIcIAAgEDYCFCAAIBQ2AgxBACEQDO0BCyAAQQA2AhwgACAQNgIUIABBqpyAgAA2AhAgAEEPNgIMQQAhEAzsAQsgACAQIAIQtICAgAAiAQ0BIBAhAQtBDiEQDNEBCwJAIAFBFUcNACAAQQI2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAzqAQsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAM6QELIAFBAWohEAJAIAAvATAiAUGAAXFFDQACQCAAIBAgAhC7gICAACIBDQAgECEBDHALIAFBFUcNugEgAEEFNgIcIAAgEDYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAM6QELAkAgAUGgBHFBoARHDQAgAC0ALUECcQ0AIABBADYCHCAAIBA2AhQgAEGWk4CAADYCECAAQQQ2AgxBACEQDOkBCyAAIBAgAhC9gICAABogECEBAkACQAJAAkACQCAAIBAgAhCzgICAAA4WAgEABAQEBAQEBAQEBAQEBAQEBAQEAwQLIABBAToALgsgACAALwEwQcAAcjsBMCAQIQELQSYhEAzRAQsgAEEjNgIcIAAgEDYCFCAAQaWWgIAANgIQIABBFTYCDEEAIRAM6QELIABBADYCHCAAIBA2AhQgAEHVi4CAADYCECAAQRE2AgxBACEQDOgBCyAALQAtQQFxRQ0BQcMBIRAMzgELAkAgDSACRg0AA0ACQCANLQAAQSBGDQAgDSEBDMQBCyANQQFqIg0gAkcNAAtBJSEQDOcBC0ElIRAM5gELIAAoAgQhBCAAQQA2AgQgACAEIA0Qr4CAgAAiBEUNrQEgAEEmNgIcIAAgBDYCDCAAIA1BAWo2AhRBACEQDOUBCyAQQRVGDasBIABBADYCHCAAIAE2AhQgAEH9jYCAADYCECAAQR02AgxBACEQDOQBCyAAQSc2AhwgACABNgIUIAAgEDYCDEEAIRAM4wELIBAhAUEBIRQCQAJAAkACQAJAAkACQCAALQAsQX5qDgcGBQUDAQIABQsgACAALwEwQQhyOwEwDAMLQQIhFAwBC0EEIRQLIABBAToALCAAIAAvATAgFHI7ATALIBAhAQtBKyEQDMoBCyAAQQA2AhwgACAQNgIUIABBq5KAgAA2AhAgAEELNgIMQQAhEAziAQsgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDEEAIRAM4QELIABBADoALCAQIQEMvQELIBAhAUEBIRQCQAJAAkACQAJAIAAtACxBe2oOBAMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0EpIRAMxQELIABBADYCHCAAIAE2AhQgAEHwlICAADYCECAAQQM2AgxBACEQDN0BCwJAIA4tAABBDUcNACAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA5BAWohAQx1CyAAQSw2AhwgACABNgIMIAAgDkEBajYCFEEAIRAM3QELIAAtAC1BAXFFDQFBxAEhEAzDAQsCQCAOIAJHDQBBLSEQDNwBCwJAAkADQAJAIA4tAABBdmoOBAIAAAMACyAOQQFqIg4gAkcNAAtBLSEQDN0BCyAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA4hAQx0CyAAQSw2AhwgACAONgIUIAAgATYCDEEAIRAM3AELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHMLIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzbAQsgACgCBCEEIABBADYCBCAAIAQgDhCxgICAACIEDaABIA4hAQzOAQsgEEEsRw0BIAFBAWohEEEBIQECQAJAAkACQAJAIAAtACxBe2oOBAMBAgQACyAQIQEMBAtBAiEBDAELQQQhAQsgAEEBOgAsIAAgAC8BMCABcjsBMCAQIQEMAQsgACAALwEwQQhyOwEwIBAhAQtBOSEQDL8BCyAAQQA6ACwgASEBC0E0IRAMvQELIAAgAC8BMEEgcjsBMCABIQEMAgsgACgCBCEEIABBADYCBAJAIAAgBCABELGAgIAAIgQNACABIQEMxwELIABBNzYCHCAAIAE2AhQgACAENgIMQQAhEAzUAQsgAEEIOgAsIAEhAQtBMCEQDLkBCwJAIAAtAChBAUYNACABIQEMBAsgAC0ALUEIcUUNkwEgASEBDAMLIAAtADBBIHENlAFBxQEhEAy3AQsCQCAPIAJGDQACQANAAkAgDy0AAEFQaiIBQf8BcUEKSQ0AIA8hAUE1IRAMugELIAApAyAiEUKZs+bMmbPmzBlWDQEgACARQgp+IhE3AyAgESABrUL/AYMiEkJ/hVYNASAAIBEgEnw3AyAgD0EBaiIPIAJHDQALQTkhEAzRAQsgACgCBCECIABBADYCBCAAIAIgD0EBaiIEELGAgIAAIgINlQEgBCEBDMMBC0E5IRAMzwELAkAgAC8BMCIBQQhxRQ0AIAAtAChBAUcNACAALQAtQQhxRQ2QAQsgACABQff7A3FBgARyOwEwIA8hAQtBNyEQDLQBCyAAIAAvATBBEHI7ATAMqwELIBBBFUYNiwEgAEEANgIcIAAgATYCFCAAQfCOgIAANgIQIABBHDYCDEEAIRAMywELIABBwwA2AhwgACABNgIMIAAgDUEBajYCFEEAIRAMygELAkAgAS0AAEE6Rw0AIAAoAgQhECAAQQA2AgQCQCAAIBAgARCvgICAACIQDQAgAUEBaiEBDGMLIABBwwA2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMygELIABBADYCHCAAIAE2AhQgAEGxkYCAADYCECAAQQo2AgxBACEQDMkBCyAAQQA2AhwgACABNgIUIABBoJmAgAA2AhAgAEEeNgIMQQAhEAzIAQsgAEEANgIACyAAQYASOwEqIAAgF0EBaiIBIAIQqICAgAAiEA0BIAEhAQtBxwAhEAysAQsgEEEVRw2DASAAQdEANgIcIAAgATYCFCAAQeOXgIAANgIQIABBFTYCDEEAIRAMxAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDF4LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMwwELIABBADYCHCAAIBQ2AhQgAEHBqICAADYCECAAQQc2AgwgAEEANgIAQQAhEAzCAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAzBAQtBACEQIABBADYCHCAAIAE2AhQgAEGAkYCAADYCECAAQQk2AgwMwAELIBBBFUYNfSAAQQA2AhwgACABNgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAy/AQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgAUEBaiEBAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBAJAIAAgECABEK2AgIAAIhANACABIQEMXAsgAEHYADYCHCAAIAE2AhQgACAQNgIMQQAhEAy+AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMrQELIABB2QA2AhwgACABNgIUIAAgBDYCDEEAIRAMvQELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKsBCyAAQdoANgIcIAAgATYCFCAAIAQ2AgxBACEQDLwBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQypAQsgAEHcADYCHCAAIAE2AhQgACAENgIMQQAhEAy7AQsCQCABLQAAQVBqIhBB/wFxQQpPDQAgACAQOgAqIAFBAWohAUHPACEQDKIBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQynAQsgAEHeADYCHCAAIAE2AhQgACAENgIMQQAhEAy6AQsgAEEANgIAIBdBAWohAQJAIAAtAClBI08NACABIQEMWQsgAEEANgIcIAAgATYCFCAAQdOJgIAANgIQIABBCDYCDEEAIRAMuQELIABBADYCAAtBACEQIABBADYCHCAAIAE2AhQgAEGQs4CAADYCECAAQQg2AgwMtwELIABBADYCACAXQQFqIQECQCAALQApQSFHDQAgASEBDFYLIABBADYCHCAAIAE2AhQgAEGbioCAADYCECAAQQg2AgxBACEQDLYBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKSIQQV1qQQtPDQAgASEBDFULAkAgEEEGSw0AQQEgEHRBygBxRQ0AIAEhAQxVC0EAIRAgAEEANgIcIAAgATYCFCAAQfeJgIAANgIQIABBCDYCDAy1AQsgEEEVRg1xIABBADYCHCAAIAE2AhQgAEG5jYCAADYCECAAQRo2AgxBACEQDLQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxUCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLMBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAUNgIUIAAgATYCDEEAIRAMogELIABBADYCHCAAIBQ2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKEBCyAAQQA2AhwgACABNgIUIABBw4+AgAA2AhAgAEEHNgIMQQAhEAygAQtBACEQIABBADYCHCAAIBQ2AhQgAEGMnICAADYCECAAQQc2AgwMnwELIABBADYCHCAAIBQ2AhQgAEGMnICAADYCECAAQQc2AgxBACEQDJ4BCyAAQQA2AhwgACAUNgIUIABB/pGAgAA2AhAgAEEHNgIMQQAhEAydAQsgAEEANgIcIAAgATYCFCAAQY6bgIAANgIQIABBBjYCDEEAIRAMnAELIBBBFUYNVyAAQQA2AhwgACABNgIUIABBzI6AgAA2AhAgAEEgNgIMQQAhEAybAQsgAEEANgIAIBBBAWohAUEkIRALIAAgEDoAKSAAKAIEIRAgAEEANgIEIAAgECABEKuAgIAAIhANVCABIQEMPgsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQfGbgIAANgIQIABBBjYCDAyXAQsgAUEVRg1QIABBADYCHCAAIAU2AhQgAEHwjICAADYCECAAQRs2AgxBACEQDJYBCyAAKAIEIQUgAEEANgIEIAAgBSAQEKmAgIAAIgUNASAQQQFqIQULQa0BIRAMewsgAEHBATYCHCAAIAU2AgwgACAQQQFqNgIUQQAhEAyTAQsgACgCBCEGIABBADYCBCAAIAYgEBCpgICAACIGDQEgEEEBaiEGC0GuASEQDHgLIABBwgE2AhwgACAGNgIMIAAgEEEBajYCFEEAIRAMkAELIABBADYCHCAAIAc2AhQgAEGXi4CAADYCECAAQQ02AgxBACEQDI8BCyAAQQA2AhwgACAINgIUIABB45CAgAA2AhAgAEEJNgIMQQAhEAyOAQsgAEEANgIcIAAgCDYCFCAAQZSNgIAANgIQIABBITYCDEEAIRAMjQELQQEhFkEAIRdBACEUQQEhEAsgACAQOgArIAlBAWohCAJAAkAgAC0ALUEQcQ0AAkACQAJAIAAtACoOAwEAAgQLIBZFDQMMAgsgFA0BDAILIBdFDQELIAAoAgQhECAAQQA2AgQgACAQIAgQrYCAgAAiEEUNPSAAQckBNgIcIAAgCDYCFCAAIBA2AgxBACEQDIwBCyAAKAIEIQQgAEEANgIEIAAgBCAIEK2AgIAAIgRFDXYgAEHKATYCHCAAIAg2AhQgACAENgIMQQAhEAyLAQsgACgCBCEEIABBADYCBCAAIAQgCRCtgICAACIERQ10IABBywE2AhwgACAJNgIUIAAgBDYCDEEAIRAMigELIAAoAgQhBCAAQQA2AgQgACAEIAoQrYCAgAAiBEUNciAAQc0BNgIcIAAgCjYCFCAAIAQ2AgxBACEQDIkBCwJAIAstAABBUGoiEEH/AXFBCk8NACAAIBA6ACogC0EBaiEKQbYBIRAMcAsgACgCBCEEIABBADYCBCAAIAQgCxCtgICAACIERQ1wIABBzwE2AhwgACALNgIUIAAgBDYCDEEAIRAMiAELIABBADYCHCAAIAQ2AhQgAEGQs4CAADYCECAAQQg2AgwgAEEANgIAQQAhEAyHAQsgAUEVRg0/IABBADYCHCAAIAw2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDIYBCyAAQYEEOwEoIAAoAgQhECAAQgA3AwAgACAQIAxBAWoiDBCrgICAACIQRQ04IABB0wE2AhwgACAMNgIUIAAgEDYCDEEAIRAMhQELIABBADYCAAtBACEQIABBADYCHCAAIAQ2AhQgAEHYm4CAADYCECAAQQg2AgwMgwELIAAoAgQhECAAQgA3AwAgACAQIAtBAWoiCxCrgICAACIQDQFBxgEhEAxpCyAAQQI6ACgMVQsgAEHVATYCHCAAIAs2AhQgACAQNgIMQQAhEAyAAQsgEEEVRg03IABBADYCHCAAIAQ2AhQgAEGkjICAADYCECAAQRA2AgxBACEQDH8LIAAtADRBAUcNNCAAIAQgAhC8gICAACIQRQ00IBBBFUcNNSAAQdwBNgIcIAAgBDYCFCAAQdWWgIAANgIQIABBFTYCDEEAIRAMfgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQMfQtBACEQDGMLQQIhEAxiC0ENIRAMYQtBDyEQDGALQSUhEAxfC0ETIRAMXgtBFSEQDF0LQRYhEAxcC0EXIRAMWwtBGCEQDFoLQRkhEAxZC0EaIRAMWAtBGyEQDFcLQRwhEAxWC0EdIRAMVQtBHyEQDFQLQSEhEAxTC0EjIRAMUgtBxgAhEAxRC0EuIRAMUAtBLyEQDE8LQTshEAxOC0E9IRAMTQtByAAhEAxMC0HJACEQDEsLQcsAIRAMSgtBzAAhEAxJC0HOACEQDEgLQdEAIRAMRwtB1QAhEAxGC0HYACEQDEULQdkAIRAMRAtB2wAhEAxDC0HkACEQDEILQeUAIRAMQQtB8QAhEAxAC0H0ACEQDD8LQY0BIRAMPgtBlwEhEAw9C0GpASEQDDwLQawBIRAMOwtBwAEhEAw6C0G5ASEQDDkLQa8BIRAMOAtBsQEhEAw3C0GyASEQDDYLQbQBIRAMNQtBtQEhEAw0C0G6ASEQDDMLQb0BIRAMMgtBvwEhEAwxC0HBASEQDDALIABBADYCHCAAIAQ2AhQgAEHpi4CAADYCECAAQR82AgxBACEQDEgLIABB2wE2AhwgACAENgIUIABB+paAgAA2AhAgAEEVNgIMQQAhEAxHCyAAQfgANgIcIAAgDDYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMRgsgAEHRADYCHCAAIAU2AhQgAEGwl4CAADYCECAAQRU2AgxBACEQDEULIABB+QA2AhwgACABNgIUIAAgEDYCDEEAIRAMRAsgAEH4ADYCHCAAIAE2AhQgAEHKmICAADYCECAAQRU2AgxBACEQDEMLIABB5AA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAxCCyAAQdcANgIcIAAgATYCFCAAQcmXgIAANgIQIABBFTYCDEEAIRAMQQsgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMQAsgAEHCADYCHCAAIAE2AhQgAEHjmICAADYCECAAQRU2AgxBACEQDD8LIABBADYCBCAAIA8gDxCxgICAACIERQ0BIABBOjYCHCAAIAQ2AgwgACAPQQFqNgIUQQAhEAw+CyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBEUNACAAQTs2AhwgACAENgIMIAAgAUEBajYCFEEAIRAMPgsgAUEBaiEBDC0LIA9BAWohAQwtCyAAQQA2AhwgACAPNgIUIABB5JKAgAA2AhAgAEEENgIMQQAhEAw7CyAAQTY2AhwgACAENgIUIAAgAjYCDEEAIRAMOgsgAEEuNgIcIAAgDjYCFCAAIAQ2AgxBACEQDDkLIABB0AA2AhwgACABNgIUIABBkZiAgAA2AhAgAEEVNgIMQQAhEAw4CyANQQFqIQEMLAsgAEEVNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMNgsgAEEbNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMNQsgAEEPNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMNAsgAEELNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMMwsgAEEaNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMMgsgAEELNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMMQsgAEEKNgIcIAAgATYCFCAAQeSWgIAANgIQIABBFTYCDEEAIRAMMAsgAEEeNgIcIAAgATYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAMLwsgAEEANgIcIAAgEDYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMLgsgAEEENgIcIAAgATYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMLQsgAEEANgIAIAtBAWohCwtBuAEhEAwSCyAAQQA2AgAgEEEBaiEBQfUAIRAMEQsgASEBAkAgAC0AKUEFRw0AQeMAIRAMEQtB4gAhEAwQC0EAIRAgAEEANgIcIABB5JGAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAwoCyAAQQA2AgAgF0EBaiEBQcAAIRAMDgtBASEBCyAAIAE6ACwgAEEANgIAIBdBAWohAQtBKCEQDAsLIAEhAQtBOCEQDAkLAkAgASIPIAJGDQADQAJAIA8tAABBgL6AgABqLQAAIgFBAUYNACABQQJHDQMgD0EBaiEBDAQLIA9BAWoiDyACRw0AC0E+IRAMIgtBPiEQDCELIABBADoALCAPIQEMAQtBCyEQDAYLQTohEAwFCyABQQFqIQFBLSEQDAQLIAAgAToALCAAQQA2AgAgFkEBaiEBQQwhEAwDCyAAQQA2AgAgF0EBaiEBQQohEAwCCyAAQQA2AgALIABBADoALCANIQFBCSEQDAALC0EAIRAgAEEANgIcIAAgCzYCFCAAQc2QgIAANgIQIABBCTYCDAwXC0EAIRAgAEEANgIcIAAgCjYCFCAAQemKgIAANgIQIABBCTYCDAwWC0EAIRAgAEEANgIcIAAgCTYCFCAAQbeQgIAANgIQIABBCTYCDAwVC0EAIRAgAEEANgIcIAAgCDYCFCAAQZyRgIAANgIQIABBCTYCDAwUC0EAIRAgAEEANgIcIAAgATYCFCAAQc2QgIAANgIQIABBCTYCDAwTC0EAIRAgAEEANgIcIAAgATYCFCAAQemKgIAANgIQIABBCTYCDAwSC0EAIRAgAEEANgIcIAAgATYCFCAAQbeQgIAANgIQIABBCTYCDAwRC0EAIRAgAEEANgIcIAAgATYCFCAAQZyRgIAANgIQIABBCTYCDAwQC0EAIRAgAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwPC0EAIRAgAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwOC0EAIRAgAEEANgIcIAAgATYCFCAAQcCSgIAANgIQIABBCzYCDAwNC0EAIRAgAEEANgIcIAAgATYCFCAAQZWJgIAANgIQIABBCzYCDAwMC0EAIRAgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDAwLC0EAIRAgAEEANgIcIAAgATYCFCAAQfuPgIAANgIQIABBCjYCDAwKC0EAIRAgAEEANgIcIAAgATYCFCAAQfGZgIAANgIQIABBAjYCDAwJC0EAIRAgAEEANgIcIAAgATYCFCAAQcSUgIAANgIQIABBAjYCDAwIC0EAIRAgAEEANgIcIAAgATYCFCAAQfKVgIAANgIQIABBAjYCDAwHCyAAQQI2AhwgACABNgIUIABBnJqAgAA2AhAgAEEWNgIMQQAhEAwGC0EBIRAMBQtB1AAhECABIgQgAkYNBCADQQhqIAAgBCACQdjCgIAAQQoQxYCAgAAgAygCDCEEIAMoAggOAwEEAgALEMqAgIAAAAsgAEEANgIcIABBtZqAgAA2AhAgAEEXNgIMIAAgBEEBajYCFEEAIRAMAgsgAEEANgIcIAAgBDYCFCAAQcqagIAANgIQIABBCTYCDEEAIRAMAQsCQCABIgQgAkcNAEEiIRAMAQsgAEGJgICAADYCCCAAIAQ2AgRBISEQCyADQRBqJICAgIAAIBALrwEBAn8gASgCACEGAkACQCACIANGDQAgBCAGaiEEIAYgA2ogAmshByACIAZBf3MgBWoiBmohBQNAAkAgAi0AACAELQAARg0AQQIhBAwDCwJAIAYNAEEAIQQgBSECDAMLIAZBf2ohBiAEQQFqIQQgAkEBaiICIANHDQALIAchBiADIQILIABBATYCACABIAY2AgAgACACNgIEDwsgAUEANgIAIAAgBDYCACAAIAI2AgQLCgAgABDHgICAAAvyNgELfyOAgICAAEEQayIBJICAgIAAAkBBACgCoNCAgAANAEEAEMuAgIAAQYDUhIAAayICQdkASQ0AQQAhAwJAQQAoAuDTgIAAIgQNAEEAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEIakFwcUHYqtWqBXMiBDYC4NOAgABBAEEANgL004CAAEEAQQA2AsTTgIAAC0EAIAI2AszTgIAAQQBBgNSEgAA2AsjTgIAAQQBBgNSEgAA2ApjQgIAAQQAgBDYCrNCAgABBAEF/NgKo0ICAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALQYDUhIAAQXhBgNSEgABrQQ9xQQBBgNSEgABBCGpBD3EbIgNqIgRBBGogAkFIaiIFIANrIgNBAXI2AgBBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAQ2AqDQgIAAQYDUhIAAIAVqQTg2AgQLAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB7AFLDQACQEEAKAKI0ICAACIGQRAgAEETakFwcSAAQQtJGyICQQN2IgR2IgNBA3FFDQACQAJAIANBAXEgBHJBAXMiBUEDdCIEQbDQgIAAaiIDIARBuNCAgABqKAIAIgQoAggiAkcNAEEAIAZBfiAFd3E2AojQgIAADAELIAMgAjYCCCACIAM2AgwLIARBCGohAyAEIAVBA3QiBUEDcjYCBCAEIAVqIgQgBCgCBEEBcjYCBAwMCyACQQAoApDQgIAAIgdNDQECQCADRQ0AAkACQCADIAR0QQIgBHQiA0EAIANrcnEiA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqIgRBA3QiA0Gw0ICAAGoiBSADQbjQgIAAaigCACIDKAIIIgBHDQBBACAGQX4gBHdxIgY2AojQgIAADAELIAUgADYCCCAAIAU2AgwLIAMgAkEDcjYCBCADIARBA3QiBGogBCACayIFNgIAIAMgAmoiACAFQQFyNgIEAkAgB0UNACAHQXhxQbDQgIAAaiECQQAoApzQgIAAIQQCQAJAIAZBASAHQQN2dCIIcQ0AQQAgBiAIcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCAENgIMIAIgBDYCCCAEIAI2AgwgBCAINgIICyADQQhqIQNBACAANgKc0ICAAEEAIAU2ApDQgIAADAwLQQAoAozQgIAAIglFDQEgCUEAIAlrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqQQJ0QbjSgIAAaigCACIAKAIEQXhxIAJrIQQgACEFAkADQAJAIAUoAhAiAw0AIAVBFGooAgAiA0UNAgsgAygCBEF4cSACayIFIAQgBSAESSIFGyEEIAMgACAFGyEAIAMhBQwACwsgACgCGCEKAkAgACgCDCIIIABGDQAgACgCCCIDQQAoApjQgIAASRogCCADNgIIIAMgCDYCDAwLCwJAIABBFGoiBSgCACIDDQAgACgCECIDRQ0DIABBEGohBQsDQCAFIQsgAyIIQRRqIgUoAgAiAw0AIAhBEGohBSAIKAIQIgMNAAsgC0EANgIADAoLQX8hAiAAQb9/Sw0AIABBE2oiA0FwcSECQQAoAozQgIAAIgdFDQBBACELAkAgAkGAAkkNAEEfIQsgAkH///8HSw0AIANBCHYiAyADQYD+P2pBEHZBCHEiA3QiBCAEQYDgH2pBEHZBBHEiBHQiBSAFQYCAD2pBEHZBAnEiBXRBD3YgAyAEciAFcmsiA0EBdCACIANBFWp2QQFxckEcaiELC0EAIAJrIQQCQAJAAkACQCALQQJ0QbjSgIAAaigCACIFDQBBACEDQQAhCAwBC0EAIQMgAkEAQRkgC0EBdmsgC0EfRht0IQBBACEIA0ACQCAFKAIEQXhxIAJrIgYgBE8NACAGIQQgBSEIIAYNAEEAIQQgBSEIIAUhAwwDCyADIAVBFGooAgAiBiAGIAUgAEEddkEEcWpBEGooAgAiBUYbIAMgBhshAyAAQQF0IQAgBQ0ACwsCQCADIAhyDQBBACEIQQIgC3QiA0EAIANrciAHcSIDRQ0DIANBACADa3FBf2oiAyADQQx2QRBxIgN2IgVBBXZBCHEiACADciAFIAB2IgNBAnZBBHEiBXIgAyAFdiIDQQF2QQJxIgVyIAMgBXYiA0EBdkEBcSIFciADIAV2akECdEG40oCAAGooAgAhAwsgA0UNAQsDQCADKAIEQXhxIAJrIgYgBEkhAAJAIAMoAhAiBQ0AIANBFGooAgAhBQsgBiAEIAAbIQQgAyAIIAAbIQggBSEDIAUNAAsLIAhFDQAgBEEAKAKQ0ICAACACa08NACAIKAIYIQsCQCAIKAIMIgAgCEYNACAIKAIIIgNBACgCmNCAgABJGiAAIAM2AgggAyAANgIMDAkLAkAgCEEUaiIFKAIAIgMNACAIKAIQIgNFDQMgCEEQaiEFCwNAIAUhBiADIgBBFGoiBSgCACIDDQAgAEEQaiEFIAAoAhAiAw0ACyAGQQA2AgAMCAsCQEEAKAKQ0ICAACIDIAJJDQBBACgCnNCAgAAhBAJAAkAgAyACayIFQRBJDQAgBCACaiIAIAVBAXI2AgRBACAFNgKQ0ICAAEEAIAA2ApzQgIAAIAQgA2ogBTYCACAEIAJBA3I2AgQMAQsgBCADQQNyNgIEIAQgA2oiAyADKAIEQQFyNgIEQQBBADYCnNCAgABBAEEANgKQ0ICAAAsgBEEIaiEDDAoLAkBBACgClNCAgAAiACACTQ0AQQAoAqDQgIAAIgMgAmoiBCAAIAJrIgVBAXI2AgRBACAFNgKU0ICAAEEAIAQ2AqDQgIAAIAMgAkEDcjYCBCADQQhqIQMMCgsCQAJAQQAoAuDTgIAARQ0AQQAoAujTgIAAIQQMAQtBAEJ/NwLs04CAAEEAQoCAhICAgMAANwLk04CAAEEAIAFBDGpBcHFB2KrVqgVzNgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgABBgIAEIQQLQQAhAwJAIAQgAkHHAGoiB2oiBkEAIARrIgtxIgggAksNAEEAQTA2AvjTgIAADAoLAkBBACgCwNOAgAAiA0UNAAJAQQAoArjTgIAAIgQgCGoiBSAETQ0AIAUgA00NAQtBACEDQQBBMDYC+NOAgAAMCgtBAC0AxNOAgABBBHENBAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQAJAIAMoAgAiBSAESw0AIAUgAygCBGogBEsNAwsgAygCCCIDDQALC0EAEMuAgIAAIgBBf0YNBSAIIQYCQEEAKALk04CAACIDQX9qIgQgAHFFDQAgCCAAayAEIABqQQAgA2txaiEGCyAGIAJNDQUgBkH+////B0sNBQJAQQAoAsDTgIAAIgNFDQBBACgCuNOAgAAiBCAGaiIFIARNDQYgBSADSw0GCyAGEMuAgIAAIgMgAEcNAQwHCyAGIABrIAtxIgZB/v///wdLDQQgBhDLgICAACIAIAMoAgAgAygCBGpGDQMgACEDCwJAIANBf0YNACACQcgAaiAGTQ0AAkAgByAGa0EAKALo04CAACIEakEAIARrcSIEQf7///8HTQ0AIAMhAAwHCwJAIAQQy4CAgABBf0YNACAEIAZqIQYgAyEADAcLQQAgBmsQy4CAgAAaDAQLIAMhACADQX9HDQUMAwtBACEIDAcLQQAhAAwFCyAAQX9HDQILQQBBACgCxNOAgABBBHI2AsTTgIAACyAIQf7///8HSw0BIAgQy4CAgAAhAEEAEMuAgIAAIQMgAEF/Rg0BIANBf0YNASAAIANPDQEgAyAAayIGIAJBOGpNDQELQQBBACgCuNOAgAAgBmoiAzYCuNOAgAACQCADQQAoArzTgIAATQ0AQQAgAzYCvNOAgAALAkACQAJAAkBBACgCoNCAgAAiBEUNAEHI04CAACEDA0AgACADKAIAIgUgAygCBCIIakYNAiADKAIIIgMNAAwDCwsCQAJAQQAoApjQgIAAIgNFDQAgACADTw0BC0EAIAA2ApjQgIAAC0EAIQNBACAGNgLM04CAAEEAIAA2AsjTgIAAQQBBfzYCqNCAgABBAEEAKALg04CAADYCrNCAgABBAEEANgLU04CAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgQgBkFIaiIFIANrIgNBAXI2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAQ2AqDQgIAAIAAgBWpBODYCBAwCCyADLQAMQQhxDQAgBCAFSQ0AIAQgAE8NACAEQXggBGtBD3FBACAEQQhqQQ9xGyIFaiIAQQAoApTQgIAAIAZqIgsgBWsiBUEBcjYCBCADIAggBmo2AgRBAEEAKALw04CAADYCpNCAgABBACAFNgKU0ICAAEEAIAA2AqDQgIAAIAQgC2pBODYCBAwBCwJAIABBACgCmNCAgAAiCE8NAEEAIAA2ApjQgIAAIAAhCAsgACAGaiEFQcjTgIAAIQMCQAJAAkACQAJAAkACQANAIAMoAgAgBUYNASADKAIIIgMNAAwCCwsgAy0ADEEIcUUNAQtByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiIFIARLDQMLIAMoAgghAwwACwsgAyAANgIAIAMgAygCBCAGajYCBCAAQXggAGtBD3FBACAAQQhqQQ9xG2oiCyACQQNyNgIEIAVBeCAFa0EPcUEAIAVBCGpBD3EbaiIGIAsgAmoiAmshAwJAIAYgBEcNAEEAIAI2AqDQgIAAQQBBACgClNCAgAAgA2oiAzYClNCAgAAgAiADQQFyNgIEDAMLAkAgBkEAKAKc0ICAAEcNAEEAIAI2ApzQgIAAQQBBACgCkNCAgAAgA2oiAzYCkNCAgAAgAiADQQFyNgIEIAIgA2ogAzYCAAwDCwJAIAYoAgQiBEEDcUEBRw0AIARBeHEhBwJAAkAgBEH/AUsNACAGKAIIIgUgBEEDdiIIQQN0QbDQgIAAaiIARhoCQCAGKAIMIgQgBUcNAEEAQQAoAojQgIAAQX4gCHdxNgKI0ICAAAwCCyAEIABGGiAEIAU2AgggBSAENgIMDAELIAYoAhghCQJAAkAgBigCDCIAIAZGDQAgBigCCCIEIAhJGiAAIAQ2AgggBCAANgIMDAELAkAgBkEUaiIEKAIAIgUNACAGQRBqIgQoAgAiBQ0AQQAhAAwBCwNAIAQhCCAFIgBBFGoiBCgCACIFDQAgAEEQaiEEIAAoAhAiBQ0ACyAIQQA2AgALIAlFDQACQAJAIAYgBigCHCIFQQJ0QbjSgIAAaiIEKAIARw0AIAQgADYCACAADQFBAEEAKAKM0ICAAEF+IAV3cTYCjNCAgAAMAgsgCUEQQRQgCSgCECAGRhtqIAA2AgAgAEUNAQsgACAJNgIYAkAgBigCECIERQ0AIAAgBDYCECAEIAA2AhgLIAYoAhQiBEUNACAAQRRqIAQ2AgAgBCAANgIYCyAHIANqIQMgBiAHaiIGKAIEIQQLIAYgBEF+cTYCBCACIANqIAM2AgAgAiADQQFyNgIEAkAgA0H/AUsNACADQXhxQbDQgIAAaiEEAkACQEEAKAKI0ICAACIFQQEgA0EDdnQiA3ENAEEAIAUgA3I2AojQgIAAIAQhAwwBCyAEKAIIIQMLIAMgAjYCDCAEIAI2AgggAiAENgIMIAIgAzYCCAwDC0EfIQQCQCADQf///wdLDQAgA0EIdiIEIARBgP4/akEQdkEIcSIEdCIFIAVBgOAfakEQdkEEcSIFdCIAIABBgIAPakEQdkECcSIAdEEPdiAEIAVyIAByayIEQQF0IAMgBEEVanZBAXFyQRxqIQQLIAIgBDYCHCACQgA3AhAgBEECdEG40oCAAGohBQJAQQAoAozQgIAAIgBBASAEdCIIcQ0AIAUgAjYCAEEAIAAgCHI2AozQgIAAIAIgBTYCGCACIAI2AgggAiACNgIMDAMLIANBAEEZIARBAXZrIARBH0YbdCEEIAUoAgAhAANAIAAiBSgCBEF4cSADRg0CIARBHXYhACAEQQF0IQQgBSAAQQRxakEQaiIIKAIAIgANAAsgCCACNgIAIAIgBTYCGCACIAI2AgwgAiACNgIIDAILIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgsgBkFIaiIIIANrIgNBAXI2AgQgACAIakE4NgIEIAQgBUE3IAVrQQ9xQQAgBUFJakEPcRtqQUFqIgggCCAEQRBqSRsiCEEjNgIEQQBBACgC8NOAgAA2AqTQgIAAQQAgAzYClNCAgABBACALNgKg0ICAACAIQRBqQQApAtDTgIAANwIAIAhBACkCyNOAgAA3AghBACAIQQhqNgLQ04CAAEEAIAY2AszTgIAAQQAgADYCyNOAgABBAEEANgLU04CAACAIQSRqIQMDQCADQQc2AgAgA0EEaiIDIAVJDQALIAggBEYNAyAIIAgoAgRBfnE2AgQgCCAIIARrIgA2AgAgBCAAQQFyNgIEAkAgAEH/AUsNACAAQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgAEEDdnQiAHENAEEAIAUgAHI2AojQgIAAIAMhBQwBCyADKAIIIQULIAUgBDYCDCADIAQ2AgggBCADNgIMIAQgBTYCCAwEC0EfIQMCQCAAQf///wdLDQAgAEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCIIIAhBgIAPakEQdkECcSIIdEEPdiADIAVyIAhyayIDQQF0IAAgA0EVanZBAXFyQRxqIQMLIAQgAzYCHCAEQgA3AhAgA0ECdEG40oCAAGohBQJAQQAoAozQgIAAIghBASADdCIGcQ0AIAUgBDYCAEEAIAggBnI2AozQgIAAIAQgBTYCGCAEIAQ2AgggBCAENgIMDAQLIABBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhCANAIAgiBSgCBEF4cSAARg0DIANBHXYhCCADQQF0IQMgBSAIQQRxakEQaiIGKAIAIggNAAsgBiAENgIAIAQgBTYCGCAEIAQ2AgwgBCAENgIIDAMLIAUoAggiAyACNgIMIAUgAjYCCCACQQA2AhggAiAFNgIMIAIgAzYCCAsgC0EIaiEDDAULIAUoAggiAyAENgIMIAUgBDYCCCAEQQA2AhggBCAFNgIMIAQgAzYCCAtBACgClNCAgAAiAyACTQ0AQQAoAqDQgIAAIgQgAmoiBSADIAJrIgNBAXI2AgRBACADNgKU0ICAAEEAIAU2AqDQgIAAIAQgAkEDcjYCBCAEQQhqIQMMAwtBACEDQQBBMDYC+NOAgAAMAgsCQCALRQ0AAkACQCAIIAgoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAA2AgAgAA0BQQAgB0F+IAV3cSIHNgKM0ICAAAwCCyALQRBBFCALKAIQIAhGG2ogADYCACAARQ0BCyAAIAs2AhgCQCAIKAIQIgNFDQAgACADNgIQIAMgADYCGAsgCEEUaigCACIDRQ0AIABBFGogAzYCACADIAA2AhgLAkACQCAEQQ9LDQAgCCAEIAJqIgNBA3I2AgQgCCADaiIDIAMoAgRBAXI2AgQMAQsgCCACaiIAIARBAXI2AgQgCCACQQNyNgIEIAAgBGogBDYCAAJAIARB/wFLDQAgBEF4cUGw0ICAAGohAwJAAkBBACgCiNCAgAAiBUEBIARBA3Z0IgRxDQBBACAFIARyNgKI0ICAACADIQQMAQsgAygCCCEECyAEIAA2AgwgAyAANgIIIAAgAzYCDCAAIAQ2AggMAQtBHyEDAkAgBEH///8HSw0AIARBCHYiAyADQYD+P2pBEHZBCHEiA3QiBSAFQYDgH2pBEHZBBHEiBXQiAiACQYCAD2pBEHZBAnEiAnRBD3YgAyAFciACcmsiA0EBdCAEIANBFWp2QQFxckEcaiEDCyAAIAM2AhwgAEIANwIQIANBAnRBuNKAgABqIQUCQCAHQQEgA3QiAnENACAFIAA2AgBBACAHIAJyNgKM0ICAACAAIAU2AhggACAANgIIIAAgADYCDAwBCyAEQQBBGSADQQF2ayADQR9GG3QhAyAFKAIAIQICQANAIAIiBSgCBEF4cSAERg0BIANBHXYhAiADQQF0IQMgBSACQQRxakEQaiIGKAIAIgINAAsgBiAANgIAIAAgBTYCGCAAIAA2AgwgACAANgIIDAELIAUoAggiAyAANgIMIAUgADYCCCAAQQA2AhggACAFNgIMIAAgAzYCCAsgCEEIaiEDDAELAkAgCkUNAAJAAkAgACAAKAIcIgVBAnRBuNKAgABqIgMoAgBHDQAgAyAINgIAIAgNAUEAIAlBfiAFd3E2AozQgIAADAILIApBEEEUIAooAhAgAEYbaiAINgIAIAhFDQELIAggCjYCGAJAIAAoAhAiA0UNACAIIAM2AhAgAyAINgIYCyAAQRRqKAIAIgNFDQAgCEEUaiADNgIAIAMgCDYCGAsCQAJAIARBD0sNACAAIAQgAmoiA0EDcjYCBCAAIANqIgMgAygCBEEBcjYCBAwBCyAAIAJqIgUgBEEBcjYCBCAAIAJBA3I2AgQgBSAEaiAENgIAAkAgB0UNACAHQXhxQbDQgIAAaiECQQAoApzQgIAAIQMCQAJAQQEgB0EDdnQiCCAGcQ0AQQAgCCAGcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCADNgIMIAIgAzYCCCADIAI2AgwgAyAINgIIC0EAIAU2ApzQgIAAQQAgBDYCkNCAgAALIABBCGohAwsgAUEQaiSAgICAACADCwoAIAAQyYCAgAAL4g0BB38CQCAARQ0AIABBeGoiASAAQXxqKAIAIgJBeHEiAGohAwJAIAJBAXENACACQQNxRQ0BIAEgASgCACICayIBQQAoApjQgIAAIgRJDQEgAiAAaiEAAkAgAUEAKAKc0ICAAEYNAAJAIAJB/wFLDQAgASgCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgASgCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAwsgAiAGRhogAiAENgIIIAQgAjYCDAwCCyABKAIYIQcCQAJAIAEoAgwiBiABRg0AIAEoAggiAiAESRogBiACNgIIIAIgBjYCDAwBCwJAIAFBFGoiAigCACIEDQAgAUEQaiICKAIAIgQNAEEAIQYMAQsDQCACIQUgBCIGQRRqIgIoAgAiBA0AIAZBEGohAiAGKAIQIgQNAAsgBUEANgIACyAHRQ0BAkACQCABIAEoAhwiBEECdEG40oCAAGoiAigCAEcNACACIAY2AgAgBg0BQQBBACgCjNCAgABBfiAEd3E2AozQgIAADAMLIAdBEEEUIAcoAhAgAUYbaiAGNgIAIAZFDQILIAYgBzYCGAJAIAEoAhAiAkUNACAGIAI2AhAgAiAGNgIYCyABKAIUIgJFDQEgBkEUaiACNgIAIAIgBjYCGAwBCyADKAIEIgJBA3FBA0cNACADIAJBfnE2AgRBACAANgKQ0ICAACABIABqIAA2AgAgASAAQQFyNgIEDwsgASADTw0AIAMoAgQiAkEBcUUNAAJAAkAgAkECcQ0AAkAgA0EAKAKg0ICAAEcNAEEAIAE2AqDQgIAAQQBBACgClNCAgAAgAGoiADYClNCAgAAgASAAQQFyNgIEIAFBACgCnNCAgABHDQNBAEEANgKQ0ICAAEEAQQA2ApzQgIAADwsCQCADQQAoApzQgIAARw0AQQAgATYCnNCAgABBAEEAKAKQ0ICAACAAaiIANgKQ0ICAACABIABBAXI2AgQgASAAaiAANgIADwsgAkF4cSAAaiEAAkACQCACQf8BSw0AIAMoAggiBCACQQN2IgVBA3RBsNCAgABqIgZGGgJAIAMoAgwiAiAERw0AQQBBACgCiNCAgABBfiAFd3E2AojQgIAADAILIAIgBkYaIAIgBDYCCCAEIAI2AgwMAQsgAygCGCEHAkACQCADKAIMIgYgA0YNACADKAIIIgJBACgCmNCAgABJGiAGIAI2AgggAiAGNgIMDAELAkAgA0EUaiICKAIAIgQNACADQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQACQAJAIAMgAygCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAgsgB0EQQRQgBygCECADRhtqIAY2AgAgBkUNAQsgBiAHNgIYAkAgAygCECICRQ0AIAYgAjYCECACIAY2AhgLIAMoAhQiAkUNACAGQRRqIAI2AgAgAiAGNgIYCyABIABqIAA2AgAgASAAQQFyNgIEIAFBACgCnNCAgABHDQFBACAANgKQ0ICAAA8LIAMgAkF+cTYCBCABIABqIAA2AgAgASAAQQFyNgIECwJAIABB/wFLDQAgAEF4cUGw0ICAAGohAgJAAkBBACgCiNCAgAAiBEEBIABBA3Z0IgBxDQBBACAEIAByNgKI0ICAACACIQAMAQsgAigCCCEACyAAIAE2AgwgAiABNgIIIAEgAjYCDCABIAA2AggPC0EfIQICQCAAQf///wdLDQAgAEEIdiICIAJBgP4/akEQdkEIcSICdCIEIARBgOAfakEQdkEEcSIEdCIGIAZBgIAPakEQdkECcSIGdEEPdiACIARyIAZyayICQQF0IAAgAkEVanZBAXFyQRxqIQILIAEgAjYCHCABQgA3AhAgAkECdEG40oCAAGohBAJAAkBBACgCjNCAgAAiBkEBIAJ0IgNxDQAgBCABNgIAQQAgBiADcjYCjNCAgAAgASAENgIYIAEgATYCCCABIAE2AgwMAQsgAEEAQRkgAkEBdmsgAkEfRht0IQIgBCgCACEGAkADQCAGIgQoAgRBeHEgAEYNASACQR12IQYgAkEBdCECIAQgBkEEcWpBEGoiAygCACIGDQALIAMgATYCACABIAQ2AhggASABNgIMIAEgATYCCAwBCyAEKAIIIgAgATYCDCAEIAE2AgggAUEANgIYIAEgBDYCDCABIAA2AggLQQBBACgCqNCAgABBf2oiAUF/IAEbNgKo0ICAAAsLBAAAAAtOAAJAIAANAD8AQRB0DwsCQCAAQf//A3ENACAAQX9MDQACQCAAQRB2QAAiAEF/Rw0AQQBBMDYC+NOAgABBfw8LIABBEHQPCxDKgICAAAAL8gICA38BfgJAIAJFDQAgACABOgAAIAIgAGoiA0F/aiABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBfWogAToAACADQX5qIAE6AAAgAkEHSQ0AIAAgAToAAyADQXxqIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIFayICQSBJDQAgAa1CgYCAgBB+IQYgAyAFaiEBA0AgASAGNwMYIAEgBjcDECABIAY3AwggASAGNwMAIAFBIGohASACQWBqIgJBH0sNAAsLIAALC45IAQBBgAgLhkgBAAAAAgAAAAMAAAAAAAAAAAAAAAQAAAAFAAAAAAAAAAAAAAAGAAAABwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEludmFsaWQgY2hhciBpbiB1cmwgcXVlcnkAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9ib2R5AENvbnRlbnQtTGVuZ3RoIG92ZXJmbG93AENodW5rIHNpemUgb3ZlcmZsb3cAUmVzcG9uc2Ugb3ZlcmZsb3cASW52YWxpZCBtZXRob2QgZm9yIEhUVFAveC54IHJlcXVlc3QASW52YWxpZCBtZXRob2QgZm9yIFJUU1AveC54IHJlcXVlc3QARXhwZWN0ZWQgU09VUkNFIG1ldGhvZCBmb3IgSUNFL3gueCByZXF1ZXN0AEludmFsaWQgY2hhciBpbiB1cmwgZnJhZ21lbnQgc3RhcnQARXhwZWN0ZWQgZG90AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fc3RhdHVzAEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='\n","module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCrLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC0kBAXsgAEEQav0MAAAAAAAAAAAAAAAAAAAAACIB/QsDACAAIAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AcsBygG4AckBuQHIAboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBANwBC0EAIRAMxgELQQ4hEAzFAQtBDSEQDMQBC0EPIRAMwwELQRAhEAzCAQtBEyEQDMEBC0EUIRAMwAELQRUhEAy/AQtBFiEQDL4BC0EXIRAMvQELQRghEAy8AQtBGSEQDLsBC0EaIRAMugELQRshEAy5AQtBHCEQDLgBC0EIIRAMtwELQR0hEAy2AQtBICEQDLUBC0EfIRAMtAELQQchEAyzAQtBISEQDLIBC0EiIRAMsQELQR4hEAywAQtBIyEQDK8BC0ESIRAMrgELQREhEAytAQtBJCEQDKwBC0ElIRAMqwELQSYhEAyqAQtBJyEQDKkBC0HDASEQDKgBC0EpIRAMpwELQSshEAymAQtBLCEQDKUBC0EtIRAMpAELQS4hEAyjAQtBLyEQDKIBC0HEASEQDKEBC0EwIRAMoAELQTQhEAyfAQtBDCEQDJ4BC0ExIRAMnQELQTIhEAycAQtBMyEQDJsBC0E5IRAMmgELQTUhEAyZAQtBxQEhEAyYAQtBCyEQDJcBC0E6IRAMlgELQTYhEAyVAQtBCiEQDJQBC0E3IRAMkwELQTghEAySAQtBPCEQDJEBC0E7IRAMkAELQT0hEAyPAQtBCSEQDI4BC0EoIRAMjQELQT4hEAyMAQtBPyEQDIsBC0HAACEQDIoBC0HBACEQDIkBC0HCACEQDIgBC0HDACEQDIcBC0HEACEQDIYBC0HFACEQDIUBC0HGACEQDIQBC0EqIRAMgwELQccAIRAMggELQcgAIRAMgQELQckAIRAMgAELQcoAIRAMfwtBywAhEAx+C0HNACEQDH0LQcwAIRAMfAtBzgAhEAx7C0HPACEQDHoLQdAAIRAMeQtB0QAhEAx4C0HSACEQDHcLQdMAIRAMdgtB1AAhEAx1C0HWACEQDHQLQdUAIRAMcwtBBiEQDHILQdcAIRAMcQtBBSEQDHALQdgAIRAMbwtBBCEQDG4LQdkAIRAMbQtB2gAhEAxsC0HbACEQDGsLQdwAIRAMagtBAyEQDGkLQd0AIRAMaAtB3gAhEAxnC0HfACEQDGYLQeEAIRAMZQtB4AAhEAxkC0HiACEQDGMLQeMAIRAMYgtBAiEQDGELQeQAIRAMYAtB5QAhEAxfC0HmACEQDF4LQecAIRAMXQtB6AAhEAxcC0HpACEQDFsLQeoAIRAMWgtB6wAhEAxZC0HsACEQDFgLQe0AIRAMVwtB7gAhEAxWC0HvACEQDFULQfAAIRAMVAtB8QAhEAxTC0HyACEQDFILQfMAIRAMUQtB9AAhEAxQC0H1ACEQDE8LQfYAIRAMTgtB9wAhEAxNC0H4ACEQDEwLQfkAIRAMSwtB+gAhEAxKC0H7ACEQDEkLQfwAIRAMSAtB/QAhEAxHC0H+ACEQDEYLQf8AIRAMRQtBgAEhEAxEC0GBASEQDEMLQYIBIRAMQgtBgwEhEAxBC0GEASEQDEALQYUBIRAMPwtBhgEhEAw+C0GHASEQDD0LQYgBIRAMPAtBiQEhEAw7C0GKASEQDDoLQYsBIRAMOQtBjAEhEAw4C0GNASEQDDcLQY4BIRAMNgtBjwEhEAw1C0GQASEQDDQLQZEBIRAMMwtBkgEhEAwyC0GTASEQDDELQZQBIRAMMAtBlQEhEAwvC0GWASEQDC4LQZcBIRAMLQtBmAEhEAwsC0GZASEQDCsLQZoBIRAMKgtBmwEhEAwpC0GcASEQDCgLQZ0BIRAMJwtBngEhEAwmC0GfASEQDCULQaABIRAMJAtBoQEhEAwjC0GiASEQDCILQaMBIRAMIQtBpAEhEAwgC0GlASEQDB8LQaYBIRAMHgtBpwEhEAwdC0GoASEQDBwLQakBIRAMGwtBqgEhEAwaC0GrASEQDBkLQawBIRAMGAtBrQEhEAwXC0GuASEQDBYLQQEhEAwVC0GvASEQDBQLQbABIRAMEwtBsQEhEAwSC0GzASEQDBELQbIBIRAMEAtBtAEhEAwPC0G1ASEQDA4LQbYBIRAMDQtBtwEhEAwMC0G4ASEQDAsLQbkBIRAMCgtBugEhEAwJC0G7ASEQDAgLQcYBIRAMBwtBvAEhEAwGC0G9ASEQDAULQb4BIRAMBAtBvwEhEAwDC0HAASEQDAILQcIBIRAMAQtBwQEhEAsDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB4fICEjJSg/QEFERUZHSElKS0xNT1BRUlPeA1dZW1xdYGJlZmdoaWprbG1vcHFyc3R1dnd4eXp7fH1+gAGCAYUBhgGHAYkBiwGMAY0BjgGPAZABkQGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMBmQKkArAC/gL+AgsgASIEIAJHDfMBQd0BIRAM/wMLIAEiECACRw3dAUHDASEQDP4DCyABIgEgAkcNkAFB9wAhEAz9AwsgASIBIAJHDYYBQe8AIRAM/AMLIAEiASACRw1/QeoAIRAM+wMLIAEiASACRw17QegAIRAM+gMLIAEiASACRw14QeYAIRAM+QMLIAEiASACRw0aQRghEAz4AwsgASIBIAJHDRRBEiEQDPcDCyABIgEgAkcNWUHFACEQDPYDCyABIgEgAkcNSkE/IRAM9QMLIAEiASACRw1IQTwhEAz0AwsgASIBIAJHDUFBMSEQDPMDCyAALQAuQQFGDesDDIcCCyAAIAEiASACEMCAgIAAQQFHDeYBIABCADcDIAznAQsgACABIgEgAhC0gICAACIQDecBIAEhAQz1AgsCQCABIgEgAkcNAEEGIRAM8AMLIAAgAUEBaiIBIAIQu4CAgAAiEA3oASABIQEMMQsgAEIANwMgQRIhEAzVAwsgASIQIAJHDStBHSEQDO0DCwJAIAEiASACRg0AIAFBAWohAUEQIRAM1AMLQQchEAzsAwsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3lAUEIIRAM6wMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQRQhEAzSAwtBCSEQDOoDCyABIQEgACkDIFAN5AEgASEBDPICCwJAIAEiASACRw0AQQshEAzpAwsgACABQQFqIgEgAhC2gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeYBIAEhAQwNCyAAIAEiASACELqAgIAAIhAN5wEgASEBDPACCwJAIAEiASACRw0AQQ8hEAzlAwsgAS0AACIQQTtGDQggEEENRw3oASABQQFqIQEM7wILIAAgASIBIAIQuoCAgAAiEA3oASABIQEM8gILA0ACQCABLQAAQfC1gIAAai0AACIQQQFGDQAgEEECRw3rASAAKAIEIRAgAEEANgIEIAAgECABQQFqIgEQuYCAgAAiEA3qASABIQEM9AILIAFBAWoiASACRw0AC0ESIRAM4gMLIAAgASIBIAIQuoCAgAAiEA3pASABIQEMCgsgASIBIAJHDQZBGyEQDOADCwJAIAEiASACRw0AQRYhEAzgAwsgAEGKgICAADYCCCAAIAE2AgQgACABIAIQuICAgAAiEA3qASABIQFBICEQDMYDCwJAIAEiASACRg0AA0ACQCABLQAAQfC3gIAAai0AACIQQQJGDQACQCAQQX9qDgTlAewBAOsB7AELIAFBAWohAUEIIRAMyAMLIAFBAWoiASACRw0AC0EVIRAM3wMLQRUhEAzeAwsDQAJAIAEtAABB8LmAgABqLQAAIhBBAkYNACAQQX9qDgTeAewB4AHrAewBCyABQQFqIgEgAkcNAAtBGCEQDN0DCwJAIAEiASACRg0AIABBi4CAgAA2AgggACABNgIEIAEhAUEHIRAMxAMLQRkhEAzcAwsgAUEBaiEBDAILAkAgASIUIAJHDQBBGiEQDNsDCyAUIQECQCAULQAAQXNqDhTdAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAgDuAgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQM2gMLAkAgAS0AACIQQTtGDQAgEEENRw3oASABQQFqIQEM5QILIAFBAWohAQtBIiEQDL8DCwJAIAEiECACRw0AQRwhEAzYAwtCACERIBAhASAQLQAAQVBqDjfnAeYBAQIDBAUGBwgAAAAAAAAACQoLDA0OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPEBESExQAC0EeIRAMvQMLQgIhEQzlAQtCAyERDOQBC0IEIREM4wELQgUhEQziAQtCBiERDOEBC0IHIREM4AELQgghEQzfAQtCCSERDN4BC0IKIREM3QELQgshEQzcAQtCDCERDNsBC0INIREM2gELQg4hEQzZAQtCDyERDNgBC0IKIREM1wELQgshEQzWAQtCDCERDNUBC0INIREM1AELQg4hEQzTAQtCDyERDNIBC0IAIRECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAtAABBUGoON+UB5AEAAQIDBAUGB+YB5gHmAeYB5gHmAeYBCAkKCwwN5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAQ4PEBESE+YBC0ICIREM5AELQgMhEQzjAQtCBCERDOIBC0IFIREM4QELQgYhEQzgAQtCByERDN8BC0IIIREM3gELQgkhEQzdAQtCCiERDNwBC0ILIREM2wELQgwhEQzaAQtCDSERDNkBC0IOIREM2AELQg8hEQzXAQtCCiERDNYBC0ILIREM1QELQgwhEQzUAQtCDSERDNMBC0IOIREM0gELQg8hEQzRAQsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3SAUEfIRAMwAMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQSQhEAynAwtBICEQDL8DCyAAIAEiECACEL6AgIAAQX9qDgW2AQDFAgHRAdIBC0ERIRAMpAMLIABBAToALyAQIQEMuwMLIAEiASACRw3SAUEkIRAMuwMLIAEiDSACRw0eQcYAIRAMugMLIAAgASIBIAIQsoCAgAAiEA3UASABIQEMtQELIAEiECACRw0mQdAAIRAMuAMLAkAgASIBIAJHDQBBKCEQDLgDCyAAQQA2AgQgAEGMgICAADYCCCAAIAEgARCxgICAACIQDdMBIAEhAQzYAQsCQCABIhAgAkcNAEEpIRAMtwMLIBAtAAAiAUEgRg0UIAFBCUcN0wEgEEEBaiEBDBULAkAgASIBIAJGDQAgAUEBaiEBDBcLQSohEAy1AwsCQCABIhAgAkcNAEErIRAMtQMLAkAgEC0AACIBQQlGDQAgAUEgRw3VAQsgAC0ALEEIRg3TASAQIQEMkQMLAkAgASIBIAJHDQBBLCEQDLQDCyABLQAAQQpHDdUBIAFBAWohAQzJAgsgASIOIAJHDdUBQS8hEAyyAwsDQAJAIAEtAAAiEEEgRg0AAkAgEEF2ag4EANwB3AEA2gELIAEhAQzgAQsgAUEBaiIBIAJHDQALQTEhEAyxAwtBMiEQIAEiFCACRg2wAyACIBRrIAAoAgAiAWohFSAUIAFrQQNqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB8LuAgABqLQAARw0BAkAgAUEDRw0AQQYhAQyWAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMsQMLIABBADYCACAUIQEM2QELQTMhECABIhQgAkYNrwMgAiAUayAAKAIAIgFqIRUgFCABa0EIaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfS7gIAAai0AAEcNAQJAIAFBCEcNAEEFIQEMlQMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLADCyAAQQA2AgAgFCEBDNgBC0E0IRAgASIUIAJGDa4DIAIgFGsgACgCACIBaiEVIBQgAWtBBWohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUHQwoCAAGotAABHDQECQCABQQVHDQBBByEBDJQDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAyvAwsgAEEANgIAIBQhAQzXAQsCQCABIgEgAkYNAANAAkAgAS0AAEGAvoCAAGotAAAiEEEBRg0AIBBBAkYNCiABIQEM3QELIAFBAWoiASACRw0AC0EwIRAMrgMLQTAhEAytAwsCQCABIgEgAkYNAANAAkAgAS0AACIQQSBGDQAgEEF2ag4E2QHaAdoB2QHaAQsgAUEBaiIBIAJHDQALQTghEAytAwtBOCEQDKwDCwNAAkAgAS0AACIQQSBGDQAgEEEJRw0DCyABQQFqIgEgAkcNAAtBPCEQDKsDCwNAAkAgAS0AACIQQSBGDQACQAJAIBBBdmoOBNoBAQHaAQALIBBBLEYN2wELIAEhAQwECyABQQFqIgEgAkcNAAtBPyEQDKoDCyABIQEM2wELQcAAIRAgASIUIAJGDagDIAIgFGsgACgCACIBaiEWIBQgAWtBBmohFwJAA0AgFC0AAEEgciABQYDAgIAAai0AAEcNASABQQZGDY4DIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADKkDCyAAQQA2AgAgFCEBC0E2IRAMjgMLAkAgASIPIAJHDQBBwQAhEAynAwsgAEGMgICAADYCCCAAIA82AgQgDyEBIAAtACxBf2oOBM0B1QHXAdkBhwMLIAFBAWohAQzMAQsCQCABIgEgAkYNAANAAkAgAS0AACIQQSByIBAgEEG/f2pB/wFxQRpJG0H/AXEiEEEJRg0AIBBBIEYNAAJAAkACQAJAIBBBnX9qDhMAAwMDAwMDAwEDAwMDAwMDAwMCAwsgAUEBaiEBQTEhEAyRAwsgAUEBaiEBQTIhEAyQAwsgAUEBaiEBQTMhEAyPAwsgASEBDNABCyABQQFqIgEgAkcNAAtBNSEQDKUDC0E1IRAMpAMLAkAgASIBIAJGDQADQAJAIAEtAABBgLyAgABqLQAAQQFGDQAgASEBDNMBCyABQQFqIgEgAkcNAAtBPSEQDKQDC0E9IRAMowMLIAAgASIBIAIQsICAgAAiEA3WASABIQEMAQsgEEEBaiEBC0E8IRAMhwMLAkAgASIBIAJHDQBBwgAhEAygAwsCQANAAkAgAS0AAEF3ag4YAAL+Av4ChAP+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gIA/gILIAFBAWoiASACRw0AC0HCACEQDKADCyABQQFqIQEgAC0ALUEBcUUNvQEgASEBC0EsIRAMhQMLIAEiASACRw3TAUHEACEQDJ0DCwNAAkAgAS0AAEGQwICAAGotAABBAUYNACABIQEMtwILIAFBAWoiASACRw0AC0HFACEQDJwDCyANLQAAIhBBIEYNswEgEEE6Rw2BAyAAKAIEIQEgAEEANgIEIAAgASANEK+AgIAAIgEN0AEgDUEBaiEBDLMCC0HHACEQIAEiDSACRg2aAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQZDCgIAAai0AAEcNgAMgAUEFRg30AiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyaAwtByAAhECABIg0gAkYNmQMgAiANayAAKAIAIgFqIRYgDSABa0EJaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGWwoCAAGotAABHDf8CAkAgAUEJRw0AQQIhAQz1AgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmQMLAkAgASINIAJHDQBByQAhEAyZAwsCQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZJ/ag4HAIADgAOAA4ADgAMBgAMLIA1BAWohAUE+IRAMgAMLIA1BAWohAUE/IRAM/wILQcoAIRAgASINIAJGDZcDIAIgDWsgACgCACIBaiEWIA0gAWtBAWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBoMKAgABqLQAARw39AiABQQFGDfACIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJcDC0HLACEQIAEiDSACRg2WAyACIA1rIAAoAgAiAWohFiANIAFrQQ5qIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaLCgIAAai0AAEcN/AIgAUEORg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyWAwtBzAAhECABIg0gAkYNlQMgAiANayAAKAIAIgFqIRYgDSABa0EPaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUHAwoCAAGotAABHDfsCAkAgAUEPRw0AQQMhAQzxAgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlQMLQc0AIRAgASINIAJGDZQDIAIgDWsgACgCACIBaiEWIA0gAWtBBWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw36AgJAIAFBBUcNAEEEIQEM8AILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJQDCwJAIAEiDSACRw0AQc4AIRAMlAMLAkACQAJAAkAgDS0AACIBQSByIAEgAUG/f2pB/wFxQRpJG0H/AXFBnX9qDhMA/QL9Av0C/QL9Av0C/QL9Av0C/QL9Av0CAf0C/QL9AgID/QILIA1BAWohAUHBACEQDP0CCyANQQFqIQFBwgAhEAz8AgsgDUEBaiEBQcMAIRAM+wILIA1BAWohAUHEACEQDPoCCwJAIAEiASACRg0AIABBjYCAgAA2AgggACABNgIEIAEhAUHFACEQDPoCC0HPACEQDJIDCyAQIQECQAJAIBAtAABBdmoOBAGoAqgCAKgCCyAQQQFqIQELQSchEAz4AgsCQCABIgEgAkcNAEHRACEQDJEDCwJAIAEtAABBIEYNACABIQEMjQELIAFBAWohASAALQAtQQFxRQ3HASABIQEMjAELIAEiFyACRw3IAUHSACEQDI8DC0HTACEQIAEiFCACRg2OAyACIBRrIAAoAgAiAWohFiAUIAFrQQFqIRcDQCAULQAAIAFB1sKAgABqLQAARw3MASABQQFGDccBIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADI4DCwJAIAEiASACRw0AQdUAIRAMjgMLIAEtAABBCkcNzAEgAUEBaiEBDMcBCwJAIAEiASACRw0AQdYAIRAMjQMLAkACQCABLQAAQXZqDgQAzQHNAQHNAQsgAUEBaiEBDMcBCyABQQFqIQFBygAhEAzzAgsgACABIgEgAhCugICAACIQDcsBIAEhAUHNACEQDPICCyAALQApQSJGDYUDDKYCCwJAIAEiASACRw0AQdsAIRAMigMLQQAhFEEBIRdBASEWQQAhEAJAAkACQAJAAkACQAJAAkACQCABLQAAQVBqDgrUAdMBAAECAwQFBgjVAQtBAiEQDAYLQQMhEAwFC0EEIRAMBAtBBSEQDAMLQQYhEAwCC0EHIRAMAQtBCCEQC0EAIRdBACEWQQAhFAzMAQtBCSEQQQEhFEEAIRdBACEWDMsBCwJAIAEiASACRw0AQd0AIRAMiQMLIAEtAABBLkcNzAEgAUEBaiEBDKYCCyABIgEgAkcNzAFB3wAhEAyHAwsCQCABIgEgAkYNACAAQY6AgIAANgIIIAAgATYCBCABIQFB0AAhEAzuAgtB4AAhEAyGAwtB4QAhECABIgEgAkYNhQMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQeLCgIAAai0AAEcNzQEgFEEDRg3MASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyFAwtB4gAhECABIgEgAkYNhAMgAiABayAAKAIAIhRqIRYgASAUa0ECaiEXA0AgAS0AACAUQebCgIAAai0AAEcNzAEgFEECRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyEAwtB4wAhECABIgEgAkYNgwMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQenCgIAAai0AAEcNywEgFEEDRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyDAwsCQCABIgEgAkcNAEHlACEQDIMDCyAAIAFBAWoiASACEKiAgIAAIhANzQEgASEBQdYAIRAM6QILAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AAkACQAJAIBBBuH9qDgsAAc8BzwHPAc8BzwHPAc8BzwECzwELIAFBAWohAUHSACEQDO0CCyABQQFqIQFB0wAhEAzsAgsgAUEBaiEBQdQAIRAM6wILIAFBAWoiASACRw0AC0HkACEQDIIDC0HkACEQDIEDCwNAAkAgAS0AAEHwwoCAAGotAAAiEEEBRg0AIBBBfmoOA88B0AHRAdIBCyABQQFqIgEgAkcNAAtB5gAhEAyAAwsCQCABIgEgAkYNACABQQFqIQEMAwtB5wAhEAz/AgsDQAJAIAEtAABB8MSAgABqLQAAIhBBAUYNAAJAIBBBfmoOBNIB0wHUAQDVAQsgASEBQdcAIRAM5wILIAFBAWoiASACRw0AC0HoACEQDP4CCwJAIAEiASACRw0AQekAIRAM/gILAkAgAS0AACIQQXZqDhq6AdUB1QG8AdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAcoB1QHVAQDTAQsgAUEBaiEBC0EGIRAM4wILA0ACQCABLQAAQfDGgIAAai0AAEEBRg0AIAEhAQyeAgsgAUEBaiIBIAJHDQALQeoAIRAM+wILAkAgASIBIAJGDQAgAUEBaiEBDAMLQesAIRAM+gILAkAgASIBIAJHDQBB7AAhEAz6AgsgAUEBaiEBDAELAkAgASIBIAJHDQBB7QAhEAz5AgsgAUEBaiEBC0EEIRAM3gILAkAgASIUIAJHDQBB7gAhEAz3AgsgFCEBAkACQAJAIBQtAABB8MiAgABqLQAAQX9qDgfUAdUB1gEAnAIBAtcBCyAUQQFqIQEMCgsgFEEBaiEBDM0BC0EAIRAgAEEANgIcIABBm5KAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAz2AgsCQANAAkAgAS0AAEHwyICAAGotAAAiEEEERg0AAkACQCAQQX9qDgfSAdMB1AHZAQAEAdkBCyABIQFB2gAhEAzgAgsgAUEBaiEBQdwAIRAM3wILIAFBAWoiASACRw0AC0HvACEQDPYCCyABQQFqIQEMywELAkAgASIUIAJHDQBB8AAhEAz1AgsgFC0AAEEvRw3UASAUQQFqIQEMBgsCQCABIhQgAkcNAEHxACEQDPQCCwJAIBQtAAAiAUEvRw0AIBRBAWohAUHdACEQDNsCCyABQXZqIgRBFksN0wFBASAEdEGJgIACcUUN0wEMygILAkAgASIBIAJGDQAgAUEBaiEBQd4AIRAM2gILQfIAIRAM8gILAkAgASIUIAJHDQBB9AAhEAzyAgsgFCEBAkAgFC0AAEHwzICAAGotAABBf2oOA8kClAIA1AELQeEAIRAM2AILAkAgASIUIAJGDQADQAJAIBQtAABB8MqAgABqLQAAIgFBA0YNAAJAIAFBf2oOAssCANUBCyAUIQFB3wAhEAzaAgsgFEEBaiIUIAJHDQALQfMAIRAM8QILQfMAIRAM8AILAkAgASIBIAJGDQAgAEGPgICAADYCCCAAIAE2AgQgASEBQeAAIRAM1wILQfUAIRAM7wILAkAgASIBIAJHDQBB9gAhEAzvAgsgAEGPgICAADYCCCAAIAE2AgQgASEBC0EDIRAM1AILA0AgAS0AAEEgRw3DAiABQQFqIgEgAkcNAAtB9wAhEAzsAgsCQCABIgEgAkcNAEH4ACEQDOwCCyABLQAAQSBHDc4BIAFBAWohAQzvAQsgACABIgEgAhCsgICAACIQDc4BIAEhAQyOAgsCQCABIgQgAkcNAEH6ACEQDOoCCyAELQAAQcwARw3RASAEQQFqIQFBEyEQDM8BCwJAIAEiBCACRw0AQfsAIRAM6QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEANAIAQtAAAgAUHwzoCAAGotAABHDdABIAFBBUYNzgEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBB+wAhEAzoAgsCQCABIgQgAkcNAEH8ACEQDOgCCwJAAkAgBC0AAEG9f2oODADRAdEB0QHRAdEB0QHRAdEB0QHRAQHRAQsgBEEBaiEBQeYAIRAMzwILIARBAWohAUHnACEQDM4CCwJAIAEiBCACRw0AQf0AIRAM5wILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNzwEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf0AIRAM5wILIABBADYCACAQQQFqIQFBECEQDMwBCwJAIAEiBCACRw0AQf4AIRAM5gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQfbOgIAAai0AAEcNzgEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf4AIRAM5gILIABBADYCACAQQQFqIQFBFiEQDMsBCwJAIAEiBCACRw0AQf8AIRAM5QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQfzOgIAAai0AAEcNzQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf8AIRAM5QILIABBADYCACAQQQFqIQFBBSEQDMoBCwJAIAEiBCACRw0AQYABIRAM5AILIAQtAABB2QBHDcsBIARBAWohAUEIIRAMyQELAkAgASIEIAJHDQBBgQEhEAzjAgsCQAJAIAQtAABBsn9qDgMAzAEBzAELIARBAWohAUHrACEQDMoCCyAEQQFqIQFB7AAhEAzJAgsCQCABIgQgAkcNAEGCASEQDOICCwJAAkAgBC0AAEG4f2oOCADLAcsBywHLAcsBywEBywELIARBAWohAUHqACEQDMkCCyAEQQFqIQFB7QAhEAzIAgsCQCABIgQgAkcNAEGDASEQDOECCyACIARrIAAoAgAiAWohECAEIAFrQQJqIRQCQANAIAQtAAAgAUGAz4CAAGotAABHDckBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgEDYCAEGDASEQDOECC0EAIRAgAEEANgIAIBRBAWohAQzGAQsCQCABIgQgAkcNAEGEASEQDOACCyACIARrIAAoAgAiAWohFCAEIAFrQQRqIRACQANAIAQtAAAgAUGDz4CAAGotAABHDcgBIAFBBEYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGEASEQDOACCyAAQQA2AgAgEEEBaiEBQSMhEAzFAQsCQCABIgQgAkcNAEGFASEQDN8CCwJAAkAgBC0AAEG0f2oOCADIAcgByAHIAcgByAEByAELIARBAWohAUHvACEQDMYCCyAEQQFqIQFB8AAhEAzFAgsCQCABIgQgAkcNAEGGASEQDN4CCyAELQAAQcUARw3FASAEQQFqIQEMgwILAkAgASIEIAJHDQBBhwEhEAzdAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBiM+AgABqLQAARw3FASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhwEhEAzdAgsgAEEANgIAIBBBAWohAUEtIRAMwgELAkAgASIEIAJHDQBBiAEhEAzcAgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw3EASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiAEhEAzcAgsgAEEANgIAIBBBAWohAUEpIRAMwQELAkAgASIBIAJHDQBBiQEhEAzbAgtBASEQIAEtAABB3wBHDcABIAFBAWohAQyBAgsCQCABIgQgAkcNAEGKASEQDNoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRADQCAELQAAIAFBjM+AgABqLQAARw3BASABQQFGDa8CIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYoBIRAM2QILAkAgASIEIAJHDQBBiwEhEAzZAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBjs+AgABqLQAARw3BASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiwEhEAzZAgsgAEEANgIAIBBBAWohAUECIRAMvgELAkAgASIEIAJHDQBBjAEhEAzYAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw3AASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjAEhEAzYAgsgAEEANgIAIBBBAWohAUEfIRAMvQELAkAgASIEIAJHDQBBjQEhEAzXAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8s+AgABqLQAARw2/ASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjQEhEAzXAgsgAEEANgIAIBBBAWohAUEJIRAMvAELAkAgASIEIAJHDQBBjgEhEAzWAgsCQAJAIAQtAABBt39qDgcAvwG/Ab8BvwG/AQG/AQsgBEEBaiEBQfgAIRAMvQILIARBAWohAUH5ACEQDLwCCwJAIAEiBCACRw0AQY8BIRAM1QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQZHPgIAAai0AAEcNvQEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY8BIRAM1QILIABBADYCACAQQQFqIQFBGCEQDLoBCwJAIAEiBCACRw0AQZABIRAM1AILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQZfPgIAAai0AAEcNvAEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZABIRAM1AILIABBADYCACAQQQFqIQFBFyEQDLkBCwJAIAEiBCACRw0AQZEBIRAM0wILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQZrPgIAAai0AAEcNuwEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZEBIRAM0wILIABBADYCACAQQQFqIQFBFSEQDLgBCwJAIAEiBCACRw0AQZIBIRAM0gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQaHPgIAAai0AAEcNugEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZIBIRAM0gILIABBADYCACAQQQFqIQFBHiEQDLcBCwJAIAEiBCACRw0AQZMBIRAM0QILIAQtAABBzABHDbgBIARBAWohAUEKIRAMtgELAkAgBCACRw0AQZQBIRAM0AILAkACQCAELQAAQb9/ag4PALkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AbkBAbkBCyAEQQFqIQFB/gAhEAy3AgsgBEEBaiEBQf8AIRAMtgILAkAgBCACRw0AQZUBIRAMzwILAkACQCAELQAAQb9/ag4DALgBAbgBCyAEQQFqIQFB/QAhEAy2AgsgBEEBaiEEQYABIRAMtQILAkAgBCACRw0AQZYBIRAMzgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQafPgIAAai0AAEcNtgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZYBIRAMzgILIABBADYCACAQQQFqIQFBCyEQDLMBCwJAIAQgAkcNAEGXASEQDM0CCwJAAkACQAJAIAQtAABBU2oOIwC4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBAbgBuAG4AbgBuAECuAG4AbgBA7gBCyAEQQFqIQFB+wAhEAy2AgsgBEEBaiEBQfwAIRAMtQILIARBAWohBEGBASEQDLQCCyAEQQFqIQRBggEhEAyzAgsCQCAEIAJHDQBBmAEhEAzMAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBqc+AgABqLQAARw20ASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmAEhEAzMAgsgAEEANgIAIBBBAWohAUEZIRAMsQELAkAgBCACRw0AQZkBIRAMywILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQa7PgIAAai0AAEcNswEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZkBIRAMywILIABBADYCACAQQQFqIQFBBiEQDLABCwJAIAQgAkcNAEGaASEQDMoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG0z4CAAGotAABHDbIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGaASEQDMoCCyAAQQA2AgAgEEEBaiEBQRwhEAyvAQsCQCAEIAJHDQBBmwEhEAzJAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBts+AgABqLQAARw2xASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmwEhEAzJAgsgAEEANgIAIBBBAWohAUEnIRAMrgELAkAgBCACRw0AQZwBIRAMyAILAkACQCAELQAAQax/ag4CAAGxAQsgBEEBaiEEQYYBIRAMrwILIARBAWohBEGHASEQDK4CCwJAIAQgAkcNAEGdASEQDMcCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG4z4CAAGotAABHDa8BIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGdASEQDMcCCyAAQQA2AgAgEEEBaiEBQSYhEAysAQsCQCAEIAJHDQBBngEhEAzGAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBus+AgABqLQAARw2uASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBngEhEAzGAgsgAEEANgIAIBBBAWohAUEDIRAMqwELAkAgBCACRw0AQZ8BIRAMxQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNrQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ8BIRAMxQILIABBADYCACAQQQFqIQFBDCEQDKoBCwJAIAQgAkcNAEGgASEQDMQCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUG8z4CAAGotAABHDawBIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGgASEQDMQCCyAAQQA2AgAgEEEBaiEBQQ0hEAypAQsCQCAEIAJHDQBBoQEhEAzDAgsCQAJAIAQtAABBun9qDgsArAGsAawBrAGsAawBrAGsAawBAawBCyAEQQFqIQRBiwEhEAyqAgsgBEEBaiEEQYwBIRAMqQILAkAgBCACRw0AQaIBIRAMwgILIAQtAABB0ABHDakBIARBAWohBAzpAQsCQCAEIAJHDQBBowEhEAzBAgsCQAJAIAQtAABBt39qDgcBqgGqAaoBqgGqAQCqAQsgBEEBaiEEQY4BIRAMqAILIARBAWohAUEiIRAMpgELAkAgBCACRw0AQaQBIRAMwAILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQcDPgIAAai0AAEcNqAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaQBIRAMwAILIABBADYCACAQQQFqIQFBHSEQDKUBCwJAIAQgAkcNAEGlASEQDL8CCwJAAkAgBC0AAEGuf2oOAwCoAQGoAQsgBEEBaiEEQZABIRAMpgILIARBAWohAUEEIRAMpAELAkAgBCACRw0AQaYBIRAMvgILAkACQAJAAkACQCAELQAAQb9/ag4VAKoBqgGqAaoBqgGqAaoBqgGqAaoBAaoBqgECqgGqAQOqAaoBBKoBCyAEQQFqIQRBiAEhEAyoAgsgBEEBaiEEQYkBIRAMpwILIARBAWohBEGKASEQDKYCCyAEQQFqIQRBjwEhEAylAgsgBEEBaiEEQZEBIRAMpAILAkAgBCACRw0AQacBIRAMvQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNpQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQacBIRAMvQILIABBADYCACAQQQFqIQFBESEQDKIBCwJAIAQgAkcNAEGoASEQDLwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHCz4CAAGotAABHDaQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGoASEQDLwCCyAAQQA2AgAgEEEBaiEBQSwhEAyhAQsCQCAEIAJHDQBBqQEhEAy7AgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBxc+AgABqLQAARw2jASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqQEhEAy7AgsgAEEANgIAIBBBAWohAUErIRAMoAELAkAgBCACRw0AQaoBIRAMugILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQcrPgIAAai0AAEcNogEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaoBIRAMugILIABBADYCACAQQQFqIQFBFCEQDJ8BCwJAIAQgAkcNAEGrASEQDLkCCwJAAkACQAJAIAQtAABBvn9qDg8AAQKkAaQBpAGkAaQBpAGkAaQBpAGkAaQBA6QBCyAEQQFqIQRBkwEhEAyiAgsgBEEBaiEEQZQBIRAMoQILIARBAWohBEGVASEQDKACCyAEQQFqIQRBlgEhEAyfAgsCQCAEIAJHDQBBrAEhEAy4AgsgBC0AAEHFAEcNnwEgBEEBaiEEDOABCwJAIAQgAkcNAEGtASEQDLcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHNz4CAAGotAABHDZ8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGtASEQDLcCCyAAQQA2AgAgEEEBaiEBQQ4hEAycAQsCQCAEIAJHDQBBrgEhEAy2AgsgBC0AAEHQAEcNnQEgBEEBaiEBQSUhEAybAQsCQCAEIAJHDQBBrwEhEAy1AgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw2dASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrwEhEAy1AgsgAEEANgIAIBBBAWohAUEqIRAMmgELAkAgBCACRw0AQbABIRAMtAILAkACQCAELQAAQat/ag4LAJ0BnQGdAZ0BnQGdAZ0BnQGdAQGdAQsgBEEBaiEEQZoBIRAMmwILIARBAWohBEGbASEQDJoCCwJAIAQgAkcNAEGxASEQDLMCCwJAAkAgBC0AAEG/f2oOFACcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAEBnAELIARBAWohBEGZASEQDJoCCyAEQQFqIQRBnAEhEAyZAgsCQCAEIAJHDQBBsgEhEAyyAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFB2c+AgABqLQAARw2aASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBsgEhEAyyAgsgAEEANgIAIBBBAWohAUEhIRAMlwELAkAgBCACRw0AQbMBIRAMsQILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQd3PgIAAai0AAEcNmQEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbMBIRAMsQILIABBADYCACAQQQFqIQFBGiEQDJYBCwJAIAQgAkcNAEG0ASEQDLACCwJAAkACQCAELQAAQbt/ag4RAJoBmgGaAZoBmgGaAZoBmgGaAQGaAZoBmgGaAZoBApoBCyAEQQFqIQRBnQEhEAyYAgsgBEEBaiEEQZ4BIRAMlwILIARBAWohBEGfASEQDJYCCwJAIAQgAkcNAEG1ASEQDK8CCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUHkz4CAAGotAABHDZcBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG1ASEQDK8CCyAAQQA2AgAgEEEBaiEBQSghEAyUAQsCQCAEIAJHDQBBtgEhEAyuAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB6s+AgABqLQAARw2WASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtgEhEAyuAgsgAEEANgIAIBBBAWohAUEHIRAMkwELAkAgBCACRw0AQbcBIRAMrQILAkACQCAELQAAQbt/ag4OAJYBlgGWAZYBlgGWAZYBlgGWAZYBlgGWAQGWAQsgBEEBaiEEQaEBIRAMlAILIARBAWohBEGiASEQDJMCCwJAIAQgAkcNAEG4ASEQDKwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDZQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG4ASEQDKwCCyAAQQA2AgAgEEEBaiEBQRIhEAyRAQsCQCAEIAJHDQBBuQEhEAyrAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw2TASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuQEhEAyrAgsgAEEANgIAIBBBAWohAUEgIRAMkAELAkAgBCACRw0AQboBIRAMqgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNkgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQboBIRAMqgILIABBADYCACAQQQFqIQFBDyEQDI8BCwJAIAQgAkcNAEG7ASEQDKkCCwJAAkAgBC0AAEG3f2oOBwCSAZIBkgGSAZIBAZIBCyAEQQFqIQRBpQEhEAyQAgsgBEEBaiEEQaYBIRAMjwILAkAgBCACRw0AQbwBIRAMqAILIAIgBGsgACgCACIBaiEUIAQgAWtBB2ohEAJAA0AgBC0AACABQfTPgIAAai0AAEcNkAEgAUEHRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbwBIRAMqAILIABBADYCACAQQQFqIQFBGyEQDI0BCwJAIAQgAkcNAEG9ASEQDKcCCwJAAkACQCAELQAAQb5/ag4SAJEBkQGRAZEBkQGRAZEBkQGRAQGRAZEBkQGRAZEBkQECkQELIARBAWohBEGkASEQDI8CCyAEQQFqIQRBpwEhEAyOAgsgBEEBaiEEQagBIRAMjQILAkAgBCACRw0AQb4BIRAMpgILIAQtAABBzgBHDY0BIARBAWohBAzPAQsCQCAEIAJHDQBBvwEhEAylAgsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAELQAAQb9/ag4VAAECA5wBBAUGnAGcAZwBBwgJCgucAQwNDg+cAQsgBEEBaiEBQegAIRAMmgILIARBAWohAUHpACEQDJkCCyAEQQFqIQFB7gAhEAyYAgsgBEEBaiEBQfIAIRAMlwILIARBAWohAUHzACEQDJYCCyAEQQFqIQFB9gAhEAyVAgsgBEEBaiEBQfcAIRAMlAILIARBAWohAUH6ACEQDJMCCyAEQQFqIQRBgwEhEAySAgsgBEEBaiEEQYQBIRAMkQILIARBAWohBEGFASEQDJACCyAEQQFqIQRBkgEhEAyPAgsgBEEBaiEEQZgBIRAMjgILIARBAWohBEGgASEQDI0CCyAEQQFqIQRBowEhEAyMAgsgBEEBaiEEQaoBIRAMiwILAkAgBCACRg0AIABBkICAgAA2AgggACAENgIEQasBIRAMiwILQcABIRAMowILIAAgBSACEKqAgIAAIgENiwEgBSEBDFwLAkAgBiACRg0AIAZBAWohBQyNAQtBwgEhEAyhAgsDQAJAIBAtAABBdmoOBIwBAACPAQALIBBBAWoiECACRw0AC0HDASEQDKACCwJAIAcgAkYNACAAQZGAgIAANgIIIAAgBzYCBCAHIQFBASEQDIcCC0HEASEQDJ8CCwJAIAcgAkcNAEHFASEQDJ8CCwJAAkAgBy0AAEF2ag4EAc4BzgEAzgELIAdBAWohBgyNAQsgB0EBaiEFDIkBCwJAIAcgAkcNAEHGASEQDJ4CCwJAAkAgBy0AAEF2ag4XAY8BjwEBjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAI8BCyAHQQFqIQcLQbABIRAMhAILAkAgCCACRw0AQcgBIRAMnQILIAgtAABBIEcNjQEgAEEAOwEyIAhBAWohAUGzASEQDIMCCyABIRcCQANAIBciByACRg0BIActAABBUGpB/wFxIhBBCk8NzAECQCAALwEyIhRBmTNLDQAgACAUQQpsIhQ7ATIgEEH//wNzIBRB/v8DcUkNACAHQQFqIRcgACAUIBBqIhA7ATIgEEH//wNxQegHSQ0BCwtBACEQIABBADYCHCAAQcGJgIAANgIQIABBDTYCDCAAIAdBAWo2AhQMnAILQccBIRAMmwILIAAgCCACEK6AgIAAIhBFDcoBIBBBFUcNjAEgAEHIATYCHCAAIAg2AhQgAEHJl4CAADYCECAAQRU2AgxBACEQDJoCCwJAIAkgAkcNAEHMASEQDJoCC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgCS0AAEFQag4KlgGVAQABAgMEBQYIlwELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMjgELQQkhEEEBIRRBACEXQQAhFgyNAQsCQCAKIAJHDQBBzgEhEAyZAgsgCi0AAEEuRw2OASAKQQFqIQkMygELIAsgAkcNjgFB0AEhEAyXAgsCQCALIAJGDQAgAEGOgICAADYCCCAAIAs2AgRBtwEhEAz+AQtB0QEhEAyWAgsCQCAEIAJHDQBB0gEhEAyWAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EEaiELA0AgBC0AACAQQfzPgIAAai0AAEcNjgEgEEEERg3pASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHSASEQDJUCCyAAIAwgAhCsgICAACIBDY0BIAwhAQy4AQsCQCAEIAJHDQBB1AEhEAyUAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EBaiEMA0AgBC0AACAQQYHQgIAAai0AAEcNjwEgEEEBRg2OASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHUASEQDJMCCwJAIAQgAkcNAEHWASEQDJMCCyACIARrIAAoAgAiEGohFCAEIBBrQQJqIQsDQCAELQAAIBBBg9CAgABqLQAARw2OASAQQQJGDZABIBBBAWohECAEQQFqIgQgAkcNAAsgACAUNgIAQdYBIRAMkgILAkAgBCACRw0AQdcBIRAMkgILAkACQCAELQAAQbt/ag4QAI8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwEBjwELIARBAWohBEG7ASEQDPkBCyAEQQFqIQRBvAEhEAz4AQsCQCAEIAJHDQBB2AEhEAyRAgsgBC0AAEHIAEcNjAEgBEEBaiEEDMQBCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEG+ASEQDPcBC0HZASEQDI8CCwJAIAQgAkcNAEHaASEQDI8CCyAELQAAQcgARg3DASAAQQE6ACgMuQELIABBAjoALyAAIAQgAhCmgICAACIQDY0BQcIBIRAM9AELIAAtAChBf2oOArcBuQG4AQsDQAJAIAQtAABBdmoOBACOAY4BAI4BCyAEQQFqIgQgAkcNAAtB3QEhEAyLAgsgAEEAOgAvIAAtAC1BBHFFDYQCCyAAQQA6AC8gAEEBOgA0IAEhAQyMAQsgEEEVRg3aASAAQQA2AhwgACABNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAyIAgsCQCAAIBAgAhC0gICAACIEDQAgECEBDIECCwJAIARBFUcNACAAQQM2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAyIAgsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMhwILIBBBFUYN1gEgAEEANgIcIAAgATYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMhgILIAAoAgQhFyAAQQA2AgQgECARp2oiFiEBIAAgFyAQIBYgFBsiEBC1gICAACIURQ2NASAAQQc2AhwgACAQNgIUIAAgFDYCDEEAIRAMhQILIAAgAC8BMEGAAXI7ATAgASEBC0EqIRAM6gELIBBBFUYN0QEgAEEANgIcIAAgATYCFCAAQYOMgIAANgIQIABBEzYCDEEAIRAMggILIBBBFUYNzwEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAMgQILIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDI0BCyAAQQw2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMgAILIBBBFUYNzAEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM/wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIwBCyAAQQ02AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/gELIBBBFUYNyQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM/QELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIsBCyAAQQ42AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/AELIABBADYCHCAAIAE2AhQgAEHAlYCAADYCECAAQQI2AgxBACEQDPsBCyAQQRVGDcUBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPoBCyAAQRA2AhwgACABNgIUIAAgEDYCDEEAIRAM+QELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDPEBCyAAQRE2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM+AELIBBBFUYNwQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM9wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIgBCyAAQRM2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM9gELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDO0BCyAAQRQ2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM9QELIBBBFUYNvQEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM9AELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIYBCyAAQRY2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM8wELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC3gICAACIEDQAgAUEBaiEBDOkBCyAAQRc2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM8gELIABBADYCHCAAIAE2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDPEBC0IBIRELIBBBAWohAQJAIAApAyAiEkL//////////w9WDQAgACASQgSGIBGENwMgIAEhAQyEAQsgAEEANgIcIAAgATYCFCAAQa2JgIAANgIQIABBDDYCDEEAIRAM7wELIABBADYCHCAAIBA2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDO4BCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNcyAAQQU2AhwgACAQNgIUIAAgFDYCDEEAIRAM7QELIABBADYCHCAAIBA2AhQgAEGqnICAADYCECAAQQ82AgxBACEQDOwBCyAAIBAgAhC0gICAACIBDQEgECEBC0EOIRAM0QELAkAgAUEVRw0AIABBAjYCHCAAIBA2AhQgAEGwmICAADYCECAAQRU2AgxBACEQDOoBCyAAQQA2AhwgACAQNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAzpAQsgAUEBaiEQAkAgAC8BMCIBQYABcUUNAAJAIAAgECACELuAgIAAIgENACAQIQEMcAsgAUEVRw26ASAAQQU2AhwgACAQNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAzpAQsCQCABQaAEcUGgBEcNACAALQAtQQJxDQAgAEEANgIcIAAgEDYCFCAAQZaTgIAANgIQIABBBDYCDEEAIRAM6QELIAAgECACEL2AgIAAGiAQIQECQAJAAkACQAJAIAAgECACELOAgIAADhYCAQAEBAQEBAQEBAQEBAQEBAQEBAQDBAsgAEEBOgAuCyAAIAAvATBBwAByOwEwIBAhAQtBJiEQDNEBCyAAQSM2AhwgACAQNgIUIABBpZaAgAA2AhAgAEEVNgIMQQAhEAzpAQsgAEEANgIcIAAgEDYCFCAAQdWLgIAANgIQIABBETYCDEEAIRAM6AELIAAtAC1BAXFFDQFBwwEhEAzOAQsCQCANIAJGDQADQAJAIA0tAABBIEYNACANIQEMxAELIA1BAWoiDSACRw0AC0ElIRAM5wELQSUhEAzmAQsgACgCBCEEIABBADYCBCAAIAQgDRCvgICAACIERQ2tASAAQSY2AhwgACAENgIMIAAgDUEBajYCFEEAIRAM5QELIBBBFUYNqwEgAEEANgIcIAAgATYCFCAAQf2NgIAANgIQIABBHTYCDEEAIRAM5AELIABBJzYCHCAAIAE2AhQgACAQNgIMQQAhEAzjAQsgECEBQQEhFAJAAkACQAJAAkACQAJAIAAtACxBfmoOBwYFBQMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0ErIRAMygELIABBADYCHCAAIBA2AhQgAEGrkoCAADYCECAAQQs2AgxBACEQDOIBCyAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMQQAhEAzhAQsgAEEAOgAsIBAhAQy9AQsgECEBQQEhFAJAAkACQAJAAkAgAC0ALEF7ag4EAwECAAULIAAgAC8BMEEIcjsBMAwDC0ECIRQMAQtBBCEUCyAAQQE6ACwgACAALwEwIBRyOwEwCyAQIQELQSkhEAzFAQsgAEEANgIcIAAgATYCFCAAQfCUgIAANgIQIABBAzYCDEEAIRAM3QELAkAgDi0AAEENRw0AIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHULIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzdAQsgAC0ALUEBcUUNAUHEASEQDMMBCwJAIA4gAkcNAEEtIRAM3AELAkACQANAAkAgDi0AAEF2ag4EAgAAAwALIA5BAWoiDiACRw0AC0EtIRAM3QELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDiEBDHQLIABBLDYCHCAAIA42AhQgACABNgIMQQAhEAzcAQsgACgCBCEBIABBADYCBAJAIAAgASAOELGAgIAAIgENACAOQQFqIQEMcwsgAEEsNgIcIAAgATYCDCAAIA5BAWo2AhRBACEQDNsBCyAAKAIEIQQgAEEANgIEIAAgBCAOELGAgIAAIgQNoAEgDiEBDM4BCyAQQSxHDQEgAUEBaiEQQQEhAQJAAkACQAJAAkAgAC0ALEF7ag4EAwECBAALIBAhAQwEC0ECIQEMAQtBBCEBCyAAQQE6ACwgACAALwEwIAFyOwEwIBAhAQwBCyAAIAAvATBBCHI7ATAgECEBC0E5IRAMvwELIABBADoALCABIQELQTQhEAy9AQsgACAALwEwQSByOwEwIAEhAQwCCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBA0AIAEhAQzHAQsgAEE3NgIcIAAgATYCFCAAIAQ2AgxBACEQDNQBCyAAQQg6ACwgASEBC0EwIRAMuQELAkAgAC0AKEEBRg0AIAEhAQwECyAALQAtQQhxRQ2TASABIQEMAwsgAC0AMEEgcQ2UAUHFASEQDLcBCwJAIA8gAkYNAAJAA0ACQCAPLQAAQVBqIgFB/wFxQQpJDQAgDyEBQTUhEAy6AQsgACkDICIRQpmz5syZs+bMGVYNASAAIBFCCn4iETcDICARIAGtQv8BgyISQn+FVg0BIAAgESASfDcDICAPQQFqIg8gAkcNAAtBOSEQDNEBCyAAKAIEIQIgAEEANgIEIAAgAiAPQQFqIgQQsYCAgAAiAg2VASAEIQEMwwELQTkhEAzPAQsCQCAALwEwIgFBCHFFDQAgAC0AKEEBRw0AIAAtAC1BCHFFDZABCyAAIAFB9/sDcUGABHI7ATAgDyEBC0E3IRAMtAELIAAgAC8BMEEQcjsBMAyrAQsgEEEVRg2LASAAQQA2AhwgACABNgIUIABB8I6AgAA2AhAgAEEcNgIMQQAhEAzLAQsgAEHDADYCHCAAIAE2AgwgACANQQFqNgIUQQAhEAzKAQsCQCABLQAAQTpHDQAgACgCBCEQIABBADYCBAJAIAAgECABEK+AgIAAIhANACABQQFqIQEMYwsgAEHDADYCHCAAIBA2AgwgACABQQFqNgIUQQAhEAzKAQsgAEEANgIcIAAgATYCFCAAQbGRgIAANgIQIABBCjYCDEEAIRAMyQELIABBADYCHCAAIAE2AhQgAEGgmYCAADYCECAAQR42AgxBACEQDMgBCyAAQQA2AgALIABBgBI7ASogACAXQQFqIgEgAhCogICAACIQDQEgASEBC0HHACEQDKwBCyAQQRVHDYMBIABB0QA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAzEAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAzDAQsgAEEANgIcIAAgFDYCFCAAQcGogIAANgIQIABBBzYCDCAAQQA2AgBBACEQDMIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxdCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDMEBC0EAIRAgAEEANgIcIAAgATYCFCAAQYCRgIAANgIQIABBCTYCDAzAAQsgEEEVRg19IABBADYCHCAAIAE2AhQgAEGUjYCAADYCECAAQSE2AgxBACEQDL8BC0EBIRZBACEXQQAhFEEBIRALIAAgEDoAKyABQQFqIQECQAJAIAAtAC1BEHENAAJAAkACQCAALQAqDgMBAAIECyAWRQ0DDAILIBQNAQwCCyAXRQ0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQrYCAgAAiEA0AIAEhAQxcCyAAQdgANgIcIAAgATYCFCAAIBA2AgxBACEQDL4BCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQytAQsgAEHZADYCHCAAIAE2AhQgACAENgIMQQAhEAy9AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMqwELIABB2gA2AhwgACABNgIUIAAgBDYCDEEAIRAMvAELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKkBCyAAQdwANgIcIAAgATYCFCAAIAQ2AgxBACEQDLsBCwJAIAEtAABBUGoiEEH/AXFBCk8NACAAIBA6ACogAUEBaiEBQc8AIRAMogELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKcBCyAAQd4ANgIcIAAgATYCFCAAIAQ2AgxBACEQDLoBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKUEjTw0AIAEhAQxZCyAAQQA2AhwgACABNgIUIABB04mAgAA2AhAgAEEINgIMQQAhEAy5AQsgAEEANgIAC0EAIRAgAEEANgIcIAAgATYCFCAAQZCzgIAANgIQIABBCDYCDAy3AQsgAEEANgIAIBdBAWohAQJAIAAtAClBIUcNACABIQEMVgsgAEEANgIcIAAgATYCFCAAQZuKgIAANgIQIABBCDYCDEEAIRAMtgELIABBADYCACAXQQFqIQECQCAALQApIhBBXWpBC08NACABIQEMVQsCQCAQQQZLDQBBASAQdEHKAHFFDQAgASEBDFULQQAhECAAQQA2AhwgACABNgIUIABB94mAgAA2AhAgAEEINgIMDLUBCyAQQRVGDXEgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMtAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFQLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMswELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMsgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMsQELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFELIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMsAELIABBADYCHCAAIAE2AhQgAEHGioCAADYCECAAQQc2AgxBACEQDK8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDK4BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDK0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDKwBCyAAQQA2AhwgACABNgIUIABB3IiAgAA2AhAgAEEHNgIMQQAhEAyrAQsgEEE/Rw0BIAFBAWohAQtBBSEQDJABC0EAIRAgAEEANgIcIAAgATYCFCAAQf2SgIAANgIQIABBBzYCDAyoAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAynAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAymAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMRgsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAylAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHSADYCHCAAIBQ2AhQgACABNgIMQQAhEAykAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHTADYCHCAAIBQ2AhQgACABNgIMQQAhEAyjAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMQwsgAEHlADYCHCAAIBQ2AhQgACABNgIMQQAhEAyiAQsgAEEANgIcIAAgFDYCFCAAQcOPgIAANgIQIABBBzYCDEEAIRAMoQELIABBADYCHCAAIAE2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKABC0EAIRAgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDAyfAQsgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDEEAIRAMngELIABBADYCHCAAIBQ2AhQgAEH+kYCAADYCECAAQQc2AgxBACEQDJ0BCyAAQQA2AhwgACABNgIUIABBjpuAgAA2AhAgAEEGNgIMQQAhEAycAQsgEEEVRg1XIABBADYCHCAAIAE2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDJsBCyAAQQA2AgAgEEEBaiEBQSQhEAsgACAQOgApIAAoAgQhECAAQQA2AgQgACAQIAEQq4CAgAAiEA1UIAEhAQw+CyAAQQA2AgALQQAhECAAQQA2AhwgACAENgIUIABB8ZuAgAA2AhAgAEEGNgIMDJcBCyABQRVGDVAgAEEANgIcIAAgBTYCFCAAQfCMgIAANgIQIABBGzYCDEEAIRAMlgELIAAoAgQhBSAAQQA2AgQgACAFIBAQqYCAgAAiBQ0BIBBBAWohBQtBrQEhEAx7CyAAQcEBNgIcIAAgBTYCDCAAIBBBAWo2AhRBACEQDJMBCyAAKAIEIQYgAEEANgIEIAAgBiAQEKmAgIAAIgYNASAQQQFqIQYLQa4BIRAMeAsgAEHCATYCHCAAIAY2AgwgACAQQQFqNgIUQQAhEAyQAQsgAEEANgIcIAAgBzYCFCAAQZeLgIAANgIQIABBDTYCDEEAIRAMjwELIABBADYCHCAAIAg2AhQgAEHjkICAADYCECAAQQk2AgxBACEQDI4BCyAAQQA2AhwgACAINgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAyNAQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgCUEBaiEIAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBCAAIBAgCBCtgICAACIQRQ09IABByQE2AhwgACAINgIUIAAgEDYCDEEAIRAMjAELIAAoAgQhBCAAQQA2AgQgACAEIAgQrYCAgAAiBEUNdiAAQcoBNgIcIAAgCDYCFCAAIAQ2AgxBACEQDIsBCyAAKAIEIQQgAEEANgIEIAAgBCAJEK2AgIAAIgRFDXQgAEHLATYCHCAAIAk2AhQgACAENgIMQQAhEAyKAQsgACgCBCEEIABBADYCBCAAIAQgChCtgICAACIERQ1yIABBzQE2AhwgACAKNgIUIAAgBDYCDEEAIRAMiQELAkAgCy0AAEFQaiIQQf8BcUEKTw0AIAAgEDoAKiALQQFqIQpBtgEhEAxwCyAAKAIEIQQgAEEANgIEIAAgBCALEK2AgIAAIgRFDXAgAEHPATYCHCAAIAs2AhQgACAENgIMQQAhEAyIAQsgAEEANgIcIAAgBDYCFCAAQZCzgIAANgIQIABBCDYCDCAAQQA2AgBBACEQDIcBCyABQRVGDT8gAEEANgIcIAAgDDYCFCAAQcyOgIAANgIQIABBIDYCDEEAIRAMhgELIABBgQQ7ASggACgCBCEQIABCADcDACAAIBAgDEEBaiIMEKuAgIAAIhBFDTggAEHTATYCHCAAIAw2AhQgACAQNgIMQQAhEAyFAQsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQdibgIAANgIQIABBCDYCDAyDAQsgACgCBCEQIABCADcDACAAIBAgC0EBaiILEKuAgIAAIhANAUHGASEQDGkLIABBAjoAKAxVCyAAQdUBNgIcIAAgCzYCFCAAIBA2AgxBACEQDIABCyAQQRVGDTcgAEEANgIcIAAgBDYCFCAAQaSMgIAANgIQIABBEDYCDEEAIRAMfwsgAC0ANEEBRw00IAAgBCACELyAgIAAIhBFDTQgEEEVRw01IABB3AE2AhwgACAENgIUIABB1ZaAgAA2AhAgAEEVNgIMQQAhEAx+C0EAIRAgAEEANgIcIABBr4uAgAA2AhAgAEECNgIMIAAgFEEBajYCFAx9C0EAIRAMYwtBAiEQDGILQQ0hEAxhC0EPIRAMYAtBJSEQDF8LQRMhEAxeC0EVIRAMXQtBFiEQDFwLQRchEAxbC0EYIRAMWgtBGSEQDFkLQRohEAxYC0EbIRAMVwtBHCEQDFYLQR0hEAxVC0EfIRAMVAtBISEQDFMLQSMhEAxSC0HGACEQDFELQS4hEAxQC0EvIRAMTwtBOyEQDE4LQT0hEAxNC0HIACEQDEwLQckAIRAMSwtBywAhEAxKC0HMACEQDEkLQc4AIRAMSAtB0QAhEAxHC0HVACEQDEYLQdgAIRAMRQtB2QAhEAxEC0HbACEQDEMLQeQAIRAMQgtB5QAhEAxBC0HxACEQDEALQfQAIRAMPwtBjQEhEAw+C0GXASEQDD0LQakBIRAMPAtBrAEhEAw7C0HAASEQDDoLQbkBIRAMOQtBrwEhEAw4C0GxASEQDDcLQbIBIRAMNgtBtAEhEAw1C0G1ASEQDDQLQboBIRAMMwtBvQEhEAwyC0G/ASEQDDELQcEBIRAMMAsgAEEANgIcIAAgBDYCFCAAQemLgIAANgIQIABBHzYCDEEAIRAMSAsgAEHbATYCHCAAIAQ2AhQgAEH6loCAADYCECAAQRU2AgxBACEQDEcLIABB+AA2AhwgACAMNgIUIABBypiAgAA2AhAgAEEVNgIMQQAhEAxGCyAAQdEANgIcIAAgBTYCFCAAQbCXgIAANgIQIABBFTYCDEEAIRAMRQsgAEH5ADYCHCAAIAE2AhQgACAQNgIMQQAhEAxECyAAQfgANgIcIAAgATYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMQwsgAEHkADYCHCAAIAE2AhQgAEHjl4CAADYCECAAQRU2AgxBACEQDEILIABB1wA2AhwgACABNgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAxBCyAAQQA2AhwgACABNgIUIABBuY2AgAA2AhAgAEEaNgIMQQAhEAxACyAAQcIANgIcIAAgATYCFCAAQeOYgIAANgIQIABBFTYCDEEAIRAMPwsgAEEANgIEIAAgDyAPELGAgIAAIgRFDQEgAEE6NgIcIAAgBDYCDCAAIA9BAWo2AhRBACEQDD4LIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCxgICAACIERQ0AIABBOzYCHCAAIAQ2AgwgACABQQFqNgIUQQAhEAw+CyABQQFqIQEMLQsgD0EBaiEBDC0LIABBADYCHCAAIA82AhQgAEHkkoCAADYCECAAQQQ2AgxBACEQDDsLIABBNjYCHCAAIAQ2AhQgACACNgIMQQAhEAw6CyAAQS42AhwgACAONgIUIAAgBDYCDEEAIRAMOQsgAEHQADYCHCAAIAE2AhQgAEGRmICAADYCECAAQRU2AgxBACEQDDgLIA1BAWohAQwsCyAAQRU2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAw2CyAAQRs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw1CyAAQQ82AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw0CyAAQQs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAwzCyAAQRo2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwyCyAAQQs2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwxCyAAQQo2AhwgACABNgIUIABB5JaAgAA2AhAgAEEVNgIMQQAhEAwwCyAAQR42AhwgACABNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAwvCyAAQQA2AhwgACAQNgIUIABB2o2AgAA2AhAgAEEUNgIMQQAhEAwuCyAAQQQ2AhwgACABNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAwtCyAAQQA2AgAgC0EBaiELC0G4ASEQDBILIABBADYCACAQQQFqIQFB9QAhEAwRCyABIQECQCAALQApQQVHDQBB4wAhEAwRC0HiACEQDBALQQAhECAAQQA2AhwgAEHkkYCAADYCECAAQQc2AgwgACAUQQFqNgIUDCgLIABBADYCACAXQQFqIQFBwAAhEAwOC0EBIQELIAAgAToALCAAQQA2AgAgF0EBaiEBC0EoIRAMCwsgASEBC0E4IRAMCQsCQCABIg8gAkYNAANAAkAgDy0AAEGAvoCAAGotAAAiAUEBRg0AIAFBAkcNAyAPQQFqIQEMBAsgD0EBaiIPIAJHDQALQT4hEAwiC0E+IRAMIQsgAEEAOgAsIA8hAQwBC0ELIRAMBgtBOiEQDAULIAFBAWohAUEtIRAMBAsgACABOgAsIABBADYCACAWQQFqIQFBDCEQDAMLIABBADYCACAXQQFqIQFBCiEQDAILIABBADYCAAsgAEEAOgAsIA0hAUEJIRAMAAsLQQAhECAAQQA2AhwgACALNgIUIABBzZCAgAA2AhAgAEEJNgIMDBcLQQAhECAAQQA2AhwgACAKNgIUIABB6YqAgAA2AhAgAEEJNgIMDBYLQQAhECAAQQA2AhwgACAJNgIUIABBt5CAgAA2AhAgAEEJNgIMDBULQQAhECAAQQA2AhwgACAINgIUIABBnJGAgAA2AhAgAEEJNgIMDBQLQQAhECAAQQA2AhwgACABNgIUIABBzZCAgAA2AhAgAEEJNgIMDBMLQQAhECAAQQA2AhwgACABNgIUIABB6YqAgAA2AhAgAEEJNgIMDBILQQAhECAAQQA2AhwgACABNgIUIABBt5CAgAA2AhAgAEEJNgIMDBELQQAhECAAQQA2AhwgACABNgIUIABBnJGAgAA2AhAgAEEJNgIMDBALQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA8LQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA4LQQAhECAAQQA2AhwgACABNgIUIABBwJKAgAA2AhAgAEELNgIMDA0LQQAhECAAQQA2AhwgACABNgIUIABBlYmAgAA2AhAgAEELNgIMDAwLQQAhECAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMDAsLQQAhECAAQQA2AhwgACABNgIUIABB+4+AgAA2AhAgAEEKNgIMDAoLQQAhECAAQQA2AhwgACABNgIUIABB8ZmAgAA2AhAgAEECNgIMDAkLQQAhECAAQQA2AhwgACABNgIUIABBxJSAgAA2AhAgAEECNgIMDAgLQQAhECAAQQA2AhwgACABNgIUIABB8pWAgAA2AhAgAEECNgIMDAcLIABBAjYCHCAAIAE2AhQgAEGcmoCAADYCECAAQRY2AgxBACEQDAYLQQEhEAwFC0HUACEQIAEiBCACRg0EIANBCGogACAEIAJB2MKAgABBChDFgICAACADKAIMIQQgAygCCA4DAQQCAAsQyoCAgAAACyAAQQA2AhwgAEG1moCAADYCECAAQRc2AgwgACAEQQFqNgIUQQAhEAwCCyAAQQA2AhwgACAENgIUIABBypqAgAA2AhAgAEEJNgIMQQAhEAwBCwJAIAEiBCACRw0AQSIhEAwBCyAAQYmAgIAANgIIIAAgBDYCBEEhIRALIANBEGokgICAgAAgEAuvAQECfyABKAIAIQYCQAJAIAIgA0YNACAEIAZqIQQgBiADaiACayEHIAIgBkF/cyAFaiIGaiEFA0ACQCACLQAAIAQtAABGDQBBAiEEDAMLAkAgBg0AQQAhBCAFIQIMAwsgBkF/aiEGIARBAWohBCACQQFqIgIgA0cNAAsgByEGIAMhAgsgAEEBNgIAIAEgBjYCACAAIAI2AgQPCyABQQA2AgAgACAENgIAIAAgAjYCBAsKACAAEMeAgIAAC/I2AQt/I4CAgIAAQRBrIgEkgICAgAACQEEAKAKg0ICAAA0AQQAQy4CAgABBgNSEgABrIgJB2QBJDQBBACEDAkBBACgC4NOAgAAiBA0AQQBCfzcC7NOAgABBAEKAgISAgIDAADcC5NOAgABBACABQQhqQXBxQdiq1aoFcyIENgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgAALQQAgAjYCzNOAgABBAEGA1ISAADYCyNOAgABBAEGA1ISAADYCmNCAgABBACAENgKs0ICAAEEAQX82AqjQgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAtBgNSEgABBeEGA1ISAAGtBD3FBAEGA1ISAAEEIakEPcRsiA2oiBEEEaiACQUhqIgUgA2siA0EBcjYCAEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgABBgNSEgAAgBWpBODYCBAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEHsAUsNAAJAQQAoAojQgIAAIgZBECAAQRNqQXBxIABBC0kbIgJBA3YiBHYiA0EDcUUNAAJAAkAgA0EBcSAEckEBcyIFQQN0IgRBsNCAgABqIgMgBEG40ICAAGooAgAiBCgCCCICRw0AQQAgBkF+IAV3cTYCiNCAgAAMAQsgAyACNgIIIAIgAzYCDAsgBEEIaiEDIAQgBUEDdCIFQQNyNgIEIAQgBWoiBCAEKAIEQQFyNgIEDAwLIAJBACgCkNCAgAAiB00NAQJAIANFDQACQAJAIAMgBHRBAiAEdCIDQQAgA2tycSIDQQAgA2txQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmoiBEEDdCIDQbDQgIAAaiIFIANBuNCAgABqKAIAIgMoAggiAEcNAEEAIAZBfiAEd3EiBjYCiNCAgAAMAQsgBSAANgIIIAAgBTYCDAsgAyACQQNyNgIEIAMgBEEDdCIEaiAEIAJrIgU2AgAgAyACaiIAIAVBAXI2AgQCQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhBAJAAkAgBkEBIAdBA3Z0IghxDQBBACAGIAhyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAQ2AgwgAiAENgIIIAQgAjYCDCAEIAg2AggLIANBCGohA0EAIAA2ApzQgIAAQQAgBTYCkNCAgAAMDAtBACgCjNCAgAAiCUUNASAJQQAgCWtxQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmpBAnRBuNKAgABqKAIAIgAoAgRBeHEgAmshBCAAIQUCQANAAkAgBSgCECIDDQAgBUEUaigCACIDRQ0CCyADKAIEQXhxIAJrIgUgBCAFIARJIgUbIQQgAyAAIAUbIQAgAyEFDAALCyAAKAIYIQoCQCAAKAIMIgggAEYNACAAKAIIIgNBACgCmNCAgABJGiAIIAM2AgggAyAINgIMDAsLAkAgAEEUaiIFKAIAIgMNACAAKAIQIgNFDQMgAEEQaiEFCwNAIAUhCyADIghBFGoiBSgCACIDDQAgCEEQaiEFIAgoAhAiAw0ACyALQQA2AgAMCgtBfyECIABBv39LDQAgAEETaiIDQXBxIQJBACgCjNCAgAAiB0UNAEEAIQsCQCACQYACSQ0AQR8hCyACQf///wdLDQAgA0EIdiIDIANBgP4/akEQdkEIcSIDdCIEIARBgOAfakEQdkEEcSIEdCIFIAVBgIAPakEQdkECcSIFdEEPdiADIARyIAVyayIDQQF0IAIgA0EVanZBAXFyQRxqIQsLQQAgAmshBAJAAkACQAJAIAtBAnRBuNKAgABqKAIAIgUNAEEAIQNBACEIDAELQQAhAyACQQBBGSALQQF2ayALQR9GG3QhAEEAIQgDQAJAIAUoAgRBeHEgAmsiBiAETw0AIAYhBCAFIQggBg0AQQAhBCAFIQggBSEDDAMLIAMgBUEUaigCACIGIAYgBSAAQR12QQRxakEQaigCACIFRhsgAyAGGyEDIABBAXQhACAFDQALCwJAIAMgCHINAEEAIQhBAiALdCIDQQAgA2tyIAdxIgNFDQMgA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBUEFdkEIcSIAIANyIAUgAHYiA0ECdkEEcSIFciADIAV2IgNBAXZBAnEiBXIgAyAFdiIDQQF2QQFxIgVyIAMgBXZqQQJ0QbjSgIAAaigCACEDCyADRQ0BCwNAIAMoAgRBeHEgAmsiBiAESSEAAkAgAygCECIFDQAgA0EUaigCACEFCyAGIAQgABshBCADIAggABshCCAFIQMgBQ0ACwsgCEUNACAEQQAoApDQgIAAIAJrTw0AIAgoAhghCwJAIAgoAgwiACAIRg0AIAgoAggiA0EAKAKY0ICAAEkaIAAgAzYCCCADIAA2AgwMCQsCQCAIQRRqIgUoAgAiAw0AIAgoAhAiA0UNAyAIQRBqIQULA0AgBSEGIAMiAEEUaiIFKAIAIgMNACAAQRBqIQUgACgCECIDDQALIAZBADYCAAwICwJAQQAoApDQgIAAIgMgAkkNAEEAKAKc0ICAACEEAkACQCADIAJrIgVBEEkNACAEIAJqIgAgBUEBcjYCBEEAIAU2ApDQgIAAQQAgADYCnNCAgAAgBCADaiAFNgIAIAQgAkEDcjYCBAwBCyAEIANBA3I2AgQgBCADaiIDIAMoAgRBAXI2AgRBAEEANgKc0ICAAEEAQQA2ApDQgIAACyAEQQhqIQMMCgsCQEEAKAKU0ICAACIAIAJNDQBBACgCoNCAgAAiAyACaiIEIAAgAmsiBUEBcjYCBEEAIAU2ApTQgIAAQQAgBDYCoNCAgAAgAyACQQNyNgIEIANBCGohAwwKCwJAAkBBACgC4NOAgABFDQBBACgC6NOAgAAhBAwBC0EAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEMakFwcUHYqtWqBXM2AuDTgIAAQQBBADYC9NOAgABBAEEANgLE04CAAEGAgAQhBAtBACEDAkAgBCACQccAaiIHaiIGQQAgBGsiC3EiCCACSw0AQQBBMDYC+NOAgAAMCgsCQEEAKALA04CAACIDRQ0AAkBBACgCuNOAgAAiBCAIaiIFIARNDQAgBSADTQ0BC0EAIQNBAEEwNgL404CAAAwKC0EALQDE04CAAEEEcQ0EAkACQAJAQQAoAqDQgIAAIgRFDQBByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiAESw0DCyADKAIIIgMNAAsLQQAQy4CAgAAiAEF/Rg0FIAghBgJAQQAoAuTTgIAAIgNBf2oiBCAAcUUNACAIIABrIAQgAGpBACADa3FqIQYLIAYgAk0NBSAGQf7///8HSw0FAkBBACgCwNOAgAAiA0UNAEEAKAK404CAACIEIAZqIgUgBE0NBiAFIANLDQYLIAYQy4CAgAAiAyAARw0BDAcLIAYgAGsgC3EiBkH+////B0sNBCAGEMuAgIAAIgAgAygCACADKAIEakYNAyAAIQMLAkAgA0F/Rg0AIAJByABqIAZNDQACQCAHIAZrQQAoAujTgIAAIgRqQQAgBGtxIgRB/v///wdNDQAgAyEADAcLAkAgBBDLgICAAEF/Rg0AIAQgBmohBiADIQAMBwtBACAGaxDLgICAABoMBAsgAyEAIANBf0cNBQwDC0EAIQgMBwtBACEADAULIABBf0cNAgtBAEEAKALE04CAAEEEcjYCxNOAgAALIAhB/v///wdLDQEgCBDLgICAACEAQQAQy4CAgAAhAyAAQX9GDQEgA0F/Rg0BIAAgA08NASADIABrIgYgAkE4ak0NAQtBAEEAKAK404CAACAGaiIDNgK404CAAAJAIANBACgCvNOAgABNDQBBACADNgK804CAAAsCQAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQCAAIAMoAgAiBSADKAIEIghqRg0CIAMoAggiAw0ADAMLCwJAAkBBACgCmNCAgAAiA0UNACAAIANPDQELQQAgADYCmNCAgAALQQAhA0EAIAY2AszTgIAAQQAgADYCyNOAgABBAEF/NgKo0ICAAEEAQQAoAuDTgIAANgKs0ICAAEEAQQA2AtTTgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiBCAGQUhqIgUgA2siA0EBcjYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgAAgACAFakE4NgIEDAILIAMtAAxBCHENACAEIAVJDQAgBCAATw0AIARBeCAEa0EPcUEAIARBCGpBD3EbIgVqIgBBACgClNCAgAAgBmoiCyAFayIFQQFyNgIEIAMgCCAGajYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAU2ApTQgIAAQQAgADYCoNCAgAAgBCALakE4NgIEDAELAkAgAEEAKAKY0ICAACIITw0AQQAgADYCmNCAgAAgACEICyAAIAZqIQVByNOAgAAhAwJAAkACQAJAAkACQAJAA0AgAygCACAFRg0BIAMoAggiAw0ADAILCyADLQAMQQhxRQ0BC0HI04CAACEDA0ACQCADKAIAIgUgBEsNACAFIAMoAgRqIgUgBEsNAwsgAygCCCEDDAALCyADIAA2AgAgAyADKAIEIAZqNgIEIABBeCAAa0EPcUEAIABBCGpBD3EbaiILIAJBA3I2AgQgBUF4IAVrQQ9xQQAgBUEIakEPcRtqIgYgCyACaiICayEDAkAgBiAERw0AQQAgAjYCoNCAgABBAEEAKAKU0ICAACADaiIDNgKU0ICAACACIANBAXI2AgQMAwsCQCAGQQAoApzQgIAARw0AQQAgAjYCnNCAgABBAEEAKAKQ0ICAACADaiIDNgKQ0ICAACACIANBAXI2AgQgAiADaiADNgIADAMLAkAgBigCBCIEQQNxQQFHDQAgBEF4cSEHAkACQCAEQf8BSw0AIAYoAggiBSAEQQN2IghBA3RBsNCAgABqIgBGGgJAIAYoAgwiBCAFRw0AQQBBACgCiNCAgABBfiAId3E2AojQgIAADAILIAQgAEYaIAQgBTYCCCAFIAQ2AgwMAQsgBigCGCEJAkACQCAGKAIMIgAgBkYNACAGKAIIIgQgCEkaIAAgBDYCCCAEIAA2AgwMAQsCQCAGQRRqIgQoAgAiBQ0AIAZBEGoiBCgCACIFDQBBACEADAELA0AgBCEIIAUiAEEUaiIEKAIAIgUNACAAQRBqIQQgACgCECIFDQALIAhBADYCAAsgCUUNAAJAAkAgBiAGKAIcIgVBAnRBuNKAgABqIgQoAgBHDQAgBCAANgIAIAANAUEAQQAoAozQgIAAQX4gBXdxNgKM0ICAAAwCCyAJQRBBFCAJKAIQIAZGG2ogADYCACAARQ0BCyAAIAk2AhgCQCAGKAIQIgRFDQAgACAENgIQIAQgADYCGAsgBigCFCIERQ0AIABBFGogBDYCACAEIAA2AhgLIAcgA2ohAyAGIAdqIgYoAgQhBAsgBiAEQX5xNgIEIAIgA2ogAzYCACACIANBAXI2AgQCQCADQf8BSw0AIANBeHFBsNCAgABqIQQCQAJAQQAoAojQgIAAIgVBASADQQN2dCIDcQ0AQQAgBSADcjYCiNCAgAAgBCEDDAELIAQoAgghAwsgAyACNgIMIAQgAjYCCCACIAQ2AgwgAiADNgIIDAMLQR8hBAJAIANB////B0sNACADQQh2IgQgBEGA/j9qQRB2QQhxIgR0IgUgBUGA4B9qQRB2QQRxIgV0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAQgBXIgAHJrIgRBAXQgAyAEQRVqdkEBcXJBHGohBAsgAiAENgIcIAJCADcCECAEQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiAEEBIAR0IghxDQAgBSACNgIAQQAgACAIcjYCjNCAgAAgAiAFNgIYIAIgAjYCCCACIAI2AgwMAwsgA0EAQRkgBEEBdmsgBEEfRht0IQQgBSgCACEAA0AgACIFKAIEQXhxIANGDQIgBEEddiEAIARBAXQhBCAFIABBBHFqQRBqIggoAgAiAA0ACyAIIAI2AgAgAiAFNgIYIAIgAjYCDCACIAI2AggMAgsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiCyAGQUhqIgggA2siA0EBcjYCBCAAIAhqQTg2AgQgBCAFQTcgBWtBD3FBACAFQUlqQQ9xG2pBQWoiCCAIIARBEGpJGyIIQSM2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAs2AqDQgIAAIAhBEGpBACkC0NOAgAA3AgAgCEEAKQLI04CAADcCCEEAIAhBCGo2AtDTgIAAQQAgBjYCzNOAgABBACAANgLI04CAAEEAQQA2AtTTgIAAIAhBJGohAwNAIANBBzYCACADQQRqIgMgBUkNAAsgCCAERg0DIAggCCgCBEF+cTYCBCAIIAggBGsiADYCACAEIABBAXI2AgQCQCAAQf8BSw0AIABBeHFBsNCAgABqIQMCQAJAQQAoAojQgIAAIgVBASAAQQN2dCIAcQ0AQQAgBSAAcjYCiNCAgAAgAyEFDAELIAMoAgghBQsgBSAENgIMIAMgBDYCCCAEIAM2AgwgBCAFNgIIDAQLQR8hAwJAIABB////B0sNACAAQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgUgBUGA4B9qQRB2QQRxIgV0IgggCEGAgA9qQRB2QQJxIgh0QQ92IAMgBXIgCHJrIgNBAXQgACADQRVqdkEBcXJBHGohAwsgBCADNgIcIARCADcCECADQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiCEEBIAN0IgZxDQAgBSAENgIAQQAgCCAGcjYCjNCAgAAgBCAFNgIYIAQgBDYCCCAEIAQ2AgwMBAsgAEEAQRkgA0EBdmsgA0EfRht0IQMgBSgCACEIA0AgCCIFKAIEQXhxIABGDQMgA0EddiEIIANBAXQhAyAFIAhBBHFqQRBqIgYoAgAiCA0ACyAGIAQ2AgAgBCAFNgIYIAQgBDYCDCAEIAQ2AggMAwsgBSgCCCIDIAI2AgwgBSACNgIIIAJBADYCGCACIAU2AgwgAiADNgIICyALQQhqIQMMBQsgBSgCCCIDIAQ2AgwgBSAENgIIIARBADYCGCAEIAU2AgwgBCADNgIIC0EAKAKU0ICAACIDIAJNDQBBACgCoNCAgAAiBCACaiIFIAMgAmsiA0EBcjYCBEEAIAM2ApTQgIAAQQAgBTYCoNCAgAAgBCACQQNyNgIEIARBCGohAwwDC0EAIQNBAEEwNgL404CAAAwCCwJAIAtFDQACQAJAIAggCCgCHCIFQQJ0QbjSgIAAaiIDKAIARw0AIAMgADYCACAADQFBACAHQX4gBXdxIgc2AozQgIAADAILIAtBEEEUIAsoAhAgCEYbaiAANgIAIABFDQELIAAgCzYCGAJAIAgoAhAiA0UNACAAIAM2AhAgAyAANgIYCyAIQRRqKAIAIgNFDQAgAEEUaiADNgIAIAMgADYCGAsCQAJAIARBD0sNACAIIAQgAmoiA0EDcjYCBCAIIANqIgMgAygCBEEBcjYCBAwBCyAIIAJqIgAgBEEBcjYCBCAIIAJBA3I2AgQgACAEaiAENgIAAkAgBEH/AUsNACAEQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgBEEDdnQiBHENAEEAIAUgBHI2AojQgIAAIAMhBAwBCyADKAIIIQQLIAQgADYCDCADIAA2AgggACADNgIMIAAgBDYCCAwBC0EfIQMCQCAEQf///wdLDQAgBEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCICIAJBgIAPakEQdkECcSICdEEPdiADIAVyIAJyayIDQQF0IAQgA0EVanZBAXFyQRxqIQMLIAAgAzYCHCAAQgA3AhAgA0ECdEG40oCAAGohBQJAIAdBASADdCICcQ0AIAUgADYCAEEAIAcgAnI2AozQgIAAIAAgBTYCGCAAIAA2AgggACAANgIMDAELIARBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhAgJAA0AgAiIFKAIEQXhxIARGDQEgA0EddiECIANBAXQhAyAFIAJBBHFqQRBqIgYoAgAiAg0ACyAGIAA2AgAgACAFNgIYIAAgADYCDCAAIAA2AggMAQsgBSgCCCIDIAA2AgwgBSAANgIIIABBADYCGCAAIAU2AgwgACADNgIICyAIQQhqIQMMAQsCQCAKRQ0AAkACQCAAIAAoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAg2AgAgCA0BQQAgCUF+IAV3cTYCjNCAgAAMAgsgCkEQQRQgCigCECAARhtqIAg2AgAgCEUNAQsgCCAKNgIYAkAgACgCECIDRQ0AIAggAzYCECADIAg2AhgLIABBFGooAgAiA0UNACAIQRRqIAM2AgAgAyAINgIYCwJAAkAgBEEPSw0AIAAgBCACaiIDQQNyNgIEIAAgA2oiAyADKAIEQQFyNgIEDAELIAAgAmoiBSAEQQFyNgIEIAAgAkEDcjYCBCAFIARqIAQ2AgACQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhAwJAAkBBASAHQQN2dCIIIAZxDQBBACAIIAZyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAM2AgwgAiADNgIIIAMgAjYCDCADIAg2AggLQQAgBTYCnNCAgABBACAENgKQ0ICAAAsgAEEIaiEDCyABQRBqJICAgIAAIAMLCgAgABDJgICAAAviDQEHfwJAIABFDQAgAEF4aiIBIABBfGooAgAiAkF4cSIAaiEDAkAgAkEBcQ0AIAJBA3FFDQEgASABKAIAIgJrIgFBACgCmNCAgAAiBEkNASACIABqIQACQCABQQAoApzQgIAARg0AAkAgAkH/AUsNACABKAIIIgQgAkEDdiIFQQN0QbDQgIAAaiIGRhoCQCABKAIMIgIgBEcNAEEAQQAoAojQgIAAQX4gBXdxNgKI0ICAAAwDCyACIAZGGiACIAQ2AgggBCACNgIMDAILIAEoAhghBwJAAkAgASgCDCIGIAFGDQAgASgCCCICIARJGiAGIAI2AgggAiAGNgIMDAELAkAgAUEUaiICKAIAIgQNACABQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQECQAJAIAEgASgCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAwsgB0EQQRQgBygCECABRhtqIAY2AgAgBkUNAgsgBiAHNgIYAkAgASgCECICRQ0AIAYgAjYCECACIAY2AhgLIAEoAhQiAkUNASAGQRRqIAI2AgAgAiAGNgIYDAELIAMoAgQiAkEDcUEDRw0AIAMgAkF+cTYCBEEAIAA2ApDQgIAAIAEgAGogADYCACABIABBAXI2AgQPCyABIANPDQAgAygCBCICQQFxRQ0AAkACQCACQQJxDQACQCADQQAoAqDQgIAARw0AQQAgATYCoNCAgABBAEEAKAKU0ICAACAAaiIANgKU0ICAACABIABBAXI2AgQgAUEAKAKc0ICAAEcNA0EAQQA2ApDQgIAAQQBBADYCnNCAgAAPCwJAIANBACgCnNCAgABHDQBBACABNgKc0ICAAEEAQQAoApDQgIAAIABqIgA2ApDQgIAAIAEgAEEBcjYCBCABIABqIAA2AgAPCyACQXhxIABqIQACQAJAIAJB/wFLDQAgAygCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgAygCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAgsgAiAGRhogAiAENgIIIAQgAjYCDAwBCyADKAIYIQcCQAJAIAMoAgwiBiADRg0AIAMoAggiAkEAKAKY0ICAAEkaIAYgAjYCCCACIAY2AgwMAQsCQCADQRRqIgIoAgAiBA0AIANBEGoiAigCACIEDQBBACEGDAELA0AgAiEFIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAVBADYCAAsgB0UNAAJAAkAgAyADKAIcIgRBAnRBuNKAgABqIgIoAgBHDQAgAiAGNgIAIAYNAUEAQQAoAozQgIAAQX4gBHdxNgKM0ICAAAwCCyAHQRBBFCAHKAIQIANGG2ogBjYCACAGRQ0BCyAGIAc2AhgCQCADKAIQIgJFDQAgBiACNgIQIAIgBjYCGAsgAygCFCICRQ0AIAZBFGogAjYCACACIAY2AhgLIAEgAGogADYCACABIABBAXI2AgQgAUEAKAKc0ICAAEcNAUEAIAA2ApDQgIAADwsgAyACQX5xNgIEIAEgAGogADYCACABIABBAXI2AgQLAkAgAEH/AUsNACAAQXhxQbDQgIAAaiECAkACQEEAKAKI0ICAACIEQQEgAEEDdnQiAHENAEEAIAQgAHI2AojQgIAAIAIhAAwBCyACKAIIIQALIAAgATYCDCACIAE2AgggASACNgIMIAEgADYCCA8LQR8hAgJAIABB////B0sNACAAQQh2IgIgAkGA/j9qQRB2QQhxIgJ0IgQgBEGA4B9qQRB2QQRxIgR0IgYgBkGAgA9qQRB2QQJxIgZ0QQ92IAIgBHIgBnJrIgJBAXQgACACQRVqdkEBcXJBHGohAgsgASACNgIcIAFCADcCECACQQJ0QbjSgIAAaiEEAkACQEEAKAKM0ICAACIGQQEgAnQiA3ENACAEIAE2AgBBACAGIANyNgKM0ICAACABIAQ2AhggASABNgIIIAEgATYCDAwBCyAAQQBBGSACQQF2ayACQR9GG3QhAiAEKAIAIQYCQANAIAYiBCgCBEF4cSAARg0BIAJBHXYhBiACQQF0IQIgBCAGQQRxakEQaiIDKAIAIgYNAAsgAyABNgIAIAEgBDYCGCABIAE2AgwgASABNgIIDAELIAQoAggiACABNgIMIAQgATYCCCABQQA2AhggASAENgIMIAEgADYCCAtBAEEAKAKo0ICAAEF/aiIBQX8gARs2AqjQgIAACwsEAAAAC04AAkAgAA0APwBBEHQPCwJAIABB//8DcQ0AIABBf0wNAAJAIABBEHZAACIAQX9HDQBBAEEwNgL404CAAEF/DwsgAEEQdA8LEMqAgIAAAAvyAgIDfwF+AkAgAkUNACAAIAE6AAAgAiAAaiIDQX9qIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0F9aiABOgAAIANBfmogAToAACACQQdJDQAgACABOgADIANBfGogAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkF8aiABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBeGogATYCACACQXRqIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQXBqIAE2AgAgAkFsaiABNgIAIAJBaGogATYCACACQWRqIAE2AgAgBCADQQRxQRhyIgVrIgJBIEkNACABrUKBgICAEH4hBiADIAVqIQEDQCABIAY3AxggASAGNwMQIAEgBjcDCCABIAY3AwAgAUEgaiEBIAJBYGoiAkEfSw0ACwsgAAsLjkgBAEGACAuGSAEAAAACAAAAAwAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAYAAAAHAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=='\n","// @ts-check\n\n'use strict'\n\n/* global WebAssembly */\n\nconst assert = require('assert')\nconst net = require('net')\nconst http = require('http')\nconst { pipeline } = require('stream')\nconst util = require('./core/util')\nconst timers = require('./timers')\nconst Request = require('./core/request')\nconst DispatcherBase = require('./dispatcher-base')\nconst {\n RequestContentLengthMismatchError,\n ResponseContentLengthMismatchError,\n InvalidArgumentError,\n RequestAbortedError,\n HeadersTimeoutError,\n HeadersOverflowError,\n SocketError,\n InformationalError,\n BodyTimeoutError,\n HTTPParserError,\n ResponseExceededMaxSizeError,\n ClientDestroyedError\n} = require('./core/errors')\nconst buildConnector = require('./core/connect')\nconst {\n kUrl,\n kReset,\n kServerName,\n kClient,\n kBusy,\n kParser,\n kConnect,\n kBlocking,\n kResuming,\n kRunning,\n kPending,\n kSize,\n kWriting,\n kQueue,\n kConnected,\n kConnecting,\n kNeedDrain,\n kNoRef,\n kKeepAliveDefaultTimeout,\n kHostHeader,\n kPendingIdx,\n kRunningIdx,\n kError,\n kPipelining,\n kSocket,\n kKeepAliveTimeoutValue,\n kMaxHeadersSize,\n kKeepAliveMaxTimeout,\n kKeepAliveTimeoutThreshold,\n kHeadersTimeout,\n kBodyTimeout,\n kStrictContentLength,\n kConnector,\n kMaxRedirections,\n kMaxRequests,\n kCounter,\n kClose,\n kDestroy,\n kDispatch,\n kInterceptors,\n kLocalAddress,\n kMaxResponseSize,\n kHTTPConnVersion,\n // HTTP2\n kHost,\n kHTTP2Session,\n kHTTP2SessionState,\n kHTTP2BuildRequest,\n kHTTP2CopyHeaders,\n kHTTP1BuildRequest\n} = require('./core/symbols')\n\n/** @type {import('http2')} */\nlet http2\ntry {\n http2 = require('http2')\n} catch {\n // @ts-ignore\n http2 = { constants: {} }\n}\n\nconst {\n constants: {\n HTTP2_HEADER_AUTHORITY,\n HTTP2_HEADER_METHOD,\n HTTP2_HEADER_PATH,\n HTTP2_HEADER_SCHEME,\n HTTP2_HEADER_CONTENT_LENGTH,\n HTTP2_HEADER_EXPECT,\n HTTP2_HEADER_STATUS\n }\n} = http2\n\n// Experimental\nlet h2ExperimentalWarned = false\n\nconst FastBuffer = Buffer[Symbol.species]\n\nconst kClosedResolve = Symbol('kClosedResolve')\n\nconst channels = {}\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders')\n channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect')\n channels.connectError = diagnosticsChannel.channel('undici:client:connectError')\n channels.connected = diagnosticsChannel.channel('undici:client:connected')\n} catch {\n channels.sendHeaders = { hasSubscribers: false }\n channels.beforeConnect = { hasSubscribers: false }\n channels.connectError = { hasSubscribers: false }\n channels.connected = { hasSubscribers: false }\n}\n\n/**\n * @type {import('../types/client').default}\n */\nclass Client extends DispatcherBase {\n /**\n *\n * @param {string|URL} url\n * @param {import('../types/client').Client.Options} options\n */\n constructor (url, {\n interceptors,\n maxHeaderSize,\n headersTimeout,\n socketTimeout,\n requestTimeout,\n connectTimeout,\n bodyTimeout,\n idleTimeout,\n keepAlive,\n keepAliveTimeout,\n maxKeepAliveTimeout,\n keepAliveMaxTimeout,\n keepAliveTimeoutThreshold,\n socketPath,\n pipelining,\n tls,\n strictContentLength,\n maxCachedSessions,\n maxRedirections,\n connect,\n maxRequestsPerClient,\n localAddress,\n maxResponseSize,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n // h2\n allowH2,\n maxConcurrentStreams\n } = {}) {\n super()\n\n if (keepAlive !== undefined) {\n throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead')\n }\n\n if (socketTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (requestTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (idleTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead')\n }\n\n if (maxKeepAliveTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead')\n }\n\n if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {\n throw new InvalidArgumentError('invalid maxHeaderSize')\n }\n\n if (socketPath != null && typeof socketPath !== 'string') {\n throw new InvalidArgumentError('invalid socketPath')\n }\n\n if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {\n throw new InvalidArgumentError('invalid connectTimeout')\n }\n\n if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveTimeout')\n }\n\n if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveMaxTimeout')\n }\n\n if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {\n throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold')\n }\n\n if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('headersTimeout must be a positive integer or zero')\n }\n\n if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {\n throw new InvalidArgumentError('maxRequestsPerClient must be a positive number')\n }\n\n if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) {\n throw new InvalidArgumentError('localAddress must be valid string IP address')\n }\n\n if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) {\n throw new InvalidArgumentError('maxResponseSize must be a positive number')\n }\n\n if (\n autoSelectFamilyAttemptTimeout != null &&\n (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)\n ) {\n throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number')\n }\n\n // h2\n if (allowH2 != null && typeof allowH2 !== 'boolean') {\n throw new InvalidArgumentError('allowH2 must be a valid boolean value')\n }\n\n if (maxConcurrentStreams != null && (typeof maxConcurrentStreams !== 'number' || maxConcurrentStreams < 1)) {\n throw new InvalidArgumentError('maxConcurrentStreams must be a possitive integer, greater than 0')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n allowH2,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client)\n ? interceptors.Client\n : [createRedirectInterceptor({ maxRedirections })]\n this[kUrl] = util.parseOrigin(url)\n this[kConnector] = connect\n this[kSocket] = null\n this[kPipelining] = pipelining != null ? pipelining : 1\n this[kMaxHeadersSize] = maxHeaderSize || http.maxHeaderSize\n this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout\n this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout\n this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold\n this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]\n this[kServerName] = null\n this[kLocalAddress] = localAddress != null ? localAddress : null\n this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\\r\\n`\n this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3\n this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3\n this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength\n this[kMaxRedirections] = maxRedirections\n this[kMaxRequests] = maxRequestsPerClient\n this[kClosedResolve] = null\n this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1\n this[kHTTPConnVersion] = 'h1'\n\n // HTTP/2\n this[kHTTP2Session] = null\n this[kHTTP2SessionState] = !allowH2\n ? null\n : {\n // streams: null, // Fixed queue of streams - For future support of `push`\n openStreams: 0, // Keep track of them to decide wether or not unref the session\n maxConcurrentStreams: maxConcurrentStreams != null ? maxConcurrentStreams : 100 // Max peerConcurrentStreams for a Node h2 server\n }\n this[kHost] = `${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}`\n\n // kQueue is built up of 3 sections separated by\n // the kRunningIdx and kPendingIdx indices.\n // | complete | running | pending |\n // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length\n // kRunningIdx points to the first running element.\n // kPendingIdx points to the first pending element.\n // This implements a fast queue with an amortized\n // time of O(1).\n\n this[kQueue] = []\n this[kRunningIdx] = 0\n this[kPendingIdx] = 0\n }\n\n get pipelining () {\n return this[kPipelining]\n }\n\n set pipelining (value) {\n this[kPipelining] = value\n resume(this, true)\n }\n\n get [kPending] () {\n return this[kQueue].length - this[kPendingIdx]\n }\n\n get [kRunning] () {\n return this[kPendingIdx] - this[kRunningIdx]\n }\n\n get [kSize] () {\n return this[kQueue].length - this[kRunningIdx]\n }\n\n get [kConnected] () {\n return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed\n }\n\n get [kBusy] () {\n const socket = this[kSocket]\n return (\n (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) ||\n (this[kSize] >= (this[kPipelining] || 1)) ||\n this[kPending] > 0\n )\n }\n\n /* istanbul ignore: only used for test */\n [kConnect] (cb) {\n connect(this)\n this.once('connect', cb)\n }\n\n [kDispatch] (opts, handler) {\n const origin = opts.origin || this[kUrl].origin\n\n const request = this[kHTTPConnVersion] === 'h2'\n ? Request[kHTTP2BuildRequest](origin, opts, handler)\n : Request[kHTTP1BuildRequest](origin, opts, handler)\n\n this[kQueue].push(request)\n if (this[kResuming]) {\n // Do nothing.\n } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) {\n // Wait a tick in case stream/iterator is ended in the same tick.\n this[kResuming] = 1\n process.nextTick(resume, this)\n } else {\n resume(this, true)\n }\n\n if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) {\n this[kNeedDrain] = 2\n }\n\n return this[kNeedDrain] < 2\n }\n\n async [kClose] () {\n // TODO: for H2 we need to gracefully flush the remaining enqueued\n // request and close each stream.\n return new Promise((resolve) => {\n if (!this[kSize]) {\n resolve(null)\n } else {\n this[kClosedResolve] = resolve\n }\n })\n }\n\n async [kDestroy] (err) {\n return new Promise((resolve) => {\n const requests = this[kQueue].splice(this[kPendingIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n\n const callback = () => {\n if (this[kClosedResolve]) {\n // TODO (fix): Should we error here with ClientDestroyedError?\n this[kClosedResolve]()\n this[kClosedResolve] = null\n }\n resolve()\n }\n\n if (this[kHTTP2Session] != null) {\n util.destroy(this[kHTTP2Session], err)\n this[kHTTP2Session] = null\n this[kHTTP2SessionState] = null\n }\n\n if (!this[kSocket]) {\n queueMicrotask(callback)\n } else {\n util.destroy(this[kSocket].on('close', callback), err)\n }\n\n resume(this)\n })\n }\n}\n\nfunction onHttp2SessionError (err) {\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n this[kSocket][kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onHttp2FrameError (type, code, id) {\n const err = new InformationalError(`HTTP/2: \"frameError\" received - type ${type}, code ${code}`)\n\n if (id === 0) {\n this[kSocket][kError] = err\n onError(this[kClient], err)\n }\n}\n\nfunction onHttp2SessionEnd () {\n util.destroy(this, new SocketError('other side closed'))\n util.destroy(this[kSocket], new SocketError('other side closed'))\n}\n\nfunction onHTTP2GoAway (code) {\n const client = this[kClient]\n const err = new InformationalError(`HTTP/2: \"GOAWAY\" frame received with code ${code}`)\n client[kSocket] = null\n client[kHTTP2Session] = null\n\n if (client.destroyed) {\n assert(this[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n } else if (client[kRunning] > 0) {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect',\n client[kUrl],\n [client],\n err\n )\n\n resume(client)\n}\n\nconst constants = require('./llhttp/constants')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst EMPTY_BUF = Buffer.alloc(0)\n\nasync function lazyllhttp () {\n const llhttpWasmData = process.env.JEST_WORKER_ID ? require('./llhttp/llhttp-wasm.js') : undefined\n\n let mod\n try {\n mod = await WebAssembly.compile(Buffer.from(require('./llhttp/llhttp_simd-wasm.js'), 'base64'))\n } catch (e) {\n /* istanbul ignore next */\n\n // We could check if the error was caused by the simd option not\n // being enabled, but the occurring of this other error\n // * https://github.com/emscripten-core/emscripten/issues/11495\n // got me to remove that check to avoid breaking Node 12.\n mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || require('./llhttp/llhttp-wasm.js'), 'base64'))\n }\n\n return await WebAssembly.instantiate(mod, {\n env: {\n /* eslint-disable camelcase */\n\n wasm_on_url: (p, at, len) => {\n /* istanbul ignore next */\n return 0\n },\n wasm_on_status: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_begin: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageBegin() || 0\n },\n wasm_on_header_field: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_header_value: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0\n },\n wasm_on_body: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_complete: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageComplete() || 0\n }\n\n /* eslint-enable camelcase */\n }\n })\n}\n\nlet llhttpInstance = null\nlet llhttpPromise = lazyllhttp()\nllhttpPromise.catch()\n\nlet currentParser = null\nlet currentBufferRef = null\nlet currentBufferSize = 0\nlet currentBufferPtr = null\n\nconst TIMEOUT_HEADERS = 1\nconst TIMEOUT_BODY = 2\nconst TIMEOUT_IDLE = 3\n\nclass Parser {\n constructor (client, socket, { exports }) {\n assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0)\n\n this.llhttp = exports\n this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)\n this.client = client\n this.socket = socket\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n this.statusCode = null\n this.statusText = ''\n this.upgrade = false\n this.headers = []\n this.headersSize = 0\n this.headersMaxSize = client[kMaxHeadersSize]\n this.shouldKeepAlive = false\n this.paused = false\n this.resume = this.resume.bind(this)\n\n this.bytesRead = 0\n\n this.keepAlive = ''\n this.contentLength = ''\n this.connection = ''\n this.maxResponseSize = client[kMaxResponseSize]\n }\n\n setTimeout (value, type) {\n this.timeoutType = type\n if (value !== this.timeoutValue) {\n timers.clearTimeout(this.timeout)\n if (value) {\n this.timeout = timers.setTimeout(onParserTimeout, value, this)\n // istanbul ignore else: only for jest\n if (this.timeout.unref) {\n this.timeout.unref()\n }\n } else {\n this.timeout = null\n }\n this.timeoutValue = value\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n }\n\n resume () {\n if (this.socket.destroyed || !this.paused) {\n return\n }\n\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_resume(this.ptr)\n\n assert(this.timeoutType === TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n this.paused = false\n this.execute(this.socket.read() || EMPTY_BUF) // Flush parser.\n this.readMore()\n }\n\n readMore () {\n while (!this.paused && this.ptr) {\n const chunk = this.socket.read()\n if (chunk === null) {\n break\n }\n this.execute(chunk)\n }\n }\n\n execute (data) {\n assert(this.ptr != null)\n assert(currentParser == null)\n assert(!this.paused)\n\n const { socket, llhttp } = this\n\n if (data.length > currentBufferSize) {\n if (currentBufferPtr) {\n llhttp.free(currentBufferPtr)\n }\n currentBufferSize = Math.ceil(data.length / 4096) * 4096\n currentBufferPtr = llhttp.malloc(currentBufferSize)\n }\n\n new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data)\n\n // Call `execute` on the wasm parser.\n // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data,\n // and finally the length of bytes to parse.\n // The return value is an error code or `constants.ERROR.OK`.\n try {\n let ret\n\n try {\n currentBufferRef = data\n currentParser = this\n ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length)\n /* eslint-disable-next-line no-useless-catch */\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n throw err\n } finally {\n currentParser = null\n currentBufferRef = null\n }\n\n const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr\n\n if (ret === constants.ERROR.PAUSED_UPGRADE) {\n this.onUpgrade(data.slice(offset))\n } else if (ret === constants.ERROR.PAUSED) {\n this.paused = true\n socket.unshift(data.slice(offset))\n } else if (ret !== constants.ERROR.OK) {\n const ptr = llhttp.llhttp_get_error_reason(this.ptr)\n let message = ''\n /* istanbul ignore else: difficult to make a test case for */\n if (ptr) {\n const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0)\n message =\n 'Response does not match the HTTP/1.1 protocol (' +\n Buffer.from(llhttp.memory.buffer, ptr, len).toString() +\n ')'\n }\n throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset))\n }\n } catch (err) {\n util.destroy(socket, err)\n }\n }\n\n destroy () {\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_free(this.ptr)\n this.ptr = null\n\n timers.clearTimeout(this.timeout)\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n\n this.paused = false\n }\n\n onStatus (buf) {\n this.statusText = buf.toString()\n }\n\n onMessageBegin () {\n const { socket, client } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n if (!request) {\n return -1\n }\n }\n\n onHeaderField (buf) {\n const len = this.headers.length\n\n if ((len & 1) === 0) {\n this.headers.push(buf)\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n this.trackHeader(buf.length)\n }\n\n onHeaderValue (buf) {\n let len = this.headers.length\n\n if ((len & 1) === 1) {\n this.headers.push(buf)\n len += 1\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n const key = this.headers[len - 2]\n if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') {\n this.keepAlive += buf.toString()\n } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') {\n this.connection += buf.toString()\n } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') {\n this.contentLength += buf.toString()\n }\n\n this.trackHeader(buf.length)\n }\n\n trackHeader (len) {\n this.headersSize += len\n if (this.headersSize >= this.headersMaxSize) {\n util.destroy(this.socket, new HeadersOverflowError())\n }\n }\n\n onUpgrade (head) {\n const { upgrade, client, socket, headers, statusCode } = this\n\n assert(upgrade)\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(!socket.destroyed)\n assert(socket === client[kSocket])\n assert(!this.paused)\n assert(request.upgrade || request.method === 'CONNECT')\n\n this.statusCode = null\n this.statusText = ''\n this.shouldKeepAlive = null\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n socket.unshift(head)\n\n socket[kParser].destroy()\n socket[kParser] = null\n\n socket[kClient] = null\n socket[kError] = null\n socket\n .removeListener('error', onSocketError)\n .removeListener('readable', onSocketReadable)\n .removeListener('end', onSocketEnd)\n .removeListener('close', onSocketClose)\n\n client[kSocket] = null\n client[kQueue][client[kRunningIdx]++] = null\n client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))\n\n try {\n request.onUpgrade(statusCode, headers, socket)\n } catch (err) {\n util.destroy(socket, err)\n }\n\n resume(client)\n }\n\n onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {\n const { client, socket, headers, statusText } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n\n /* istanbul ignore next: difficult to make a test case for */\n if (!request) {\n return -1\n }\n\n assert(!this.upgrade)\n assert(this.statusCode < 200)\n\n if (statusCode === 100) {\n util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)))\n return -1\n }\n\n /* this can only happen if server is misbehaving */\n if (upgrade && !request.upgrade) {\n util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket)))\n return -1\n }\n\n assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS)\n\n this.statusCode = statusCode\n this.shouldKeepAlive = (\n shouldKeepAlive ||\n // Override llhttp value which does not allow keepAlive for HEAD.\n (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive')\n )\n\n if (this.statusCode >= 200) {\n const bodyTimeout = request.bodyTimeout != null\n ? request.bodyTimeout\n : client[kBodyTimeout]\n this.setTimeout(bodyTimeout, TIMEOUT_BODY)\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n if (request.method === 'CONNECT') {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n if (upgrade) {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (this.shouldKeepAlive && client[kPipelining]) {\n const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null\n\n if (keepAliveTimeout != null) {\n const timeout = Math.min(\n keepAliveTimeout - client[kKeepAliveTimeoutThreshold],\n client[kKeepAliveMaxTimeout]\n )\n if (timeout <= 0) {\n socket[kReset] = true\n } else {\n client[kKeepAliveTimeoutValue] = timeout\n }\n } else {\n client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]\n }\n } else {\n // Stop more requests from being dispatched.\n socket[kReset] = true\n }\n\n const pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false\n\n if (request.aborted) {\n return -1\n }\n\n if (request.method === 'HEAD') {\n return 1\n }\n\n if (statusCode < 200) {\n return 1\n }\n\n if (socket[kBlocking]) {\n socket[kBlocking] = false\n resume(client)\n }\n\n return pause ? constants.ERROR.PAUSED : 0\n }\n\n onBody (buf) {\n const { client, socket, statusCode, maxResponseSize } = this\n\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert.strictEqual(this.timeoutType, TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n assert(statusCode >= 200)\n\n if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) {\n util.destroy(socket, new ResponseExceededMaxSizeError())\n return -1\n }\n\n this.bytesRead += buf.length\n\n if (request.onData(buf) === false) {\n return constants.ERROR.PAUSED\n }\n }\n\n onMessageComplete () {\n const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this\n\n if (socket.destroyed && (!statusCode || shouldKeepAlive)) {\n return -1\n }\n\n if (upgrade) {\n return\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(statusCode >= 100)\n\n this.statusCode = null\n this.statusText = ''\n this.bytesRead = 0\n this.contentLength = ''\n this.keepAlive = ''\n this.connection = ''\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (statusCode < 200) {\n return\n }\n\n /* istanbul ignore next: should be handled by llhttp? */\n if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) {\n util.destroy(socket, new ResponseContentLengthMismatchError())\n return -1\n }\n\n request.onComplete(headers)\n\n client[kQueue][client[kRunningIdx]++] = null\n\n if (socket[kWriting]) {\n assert.strictEqual(client[kRunning], 0)\n // Response completed before request.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (!shouldKeepAlive) {\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (socket[kReset] && client[kRunning] === 0) {\n // Destroy socket once all requests have completed.\n // The request at the tail of the pipeline is the one\n // that requested reset and no further requests should\n // have been queued since then.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (client[kPipelining] === 1) {\n // We must wait a full event loop cycle to reuse this socket to make sure\n // that non-spec compliant servers are not closing the connection even if they\n // said they won't.\n setImmediate(resume, client)\n } else {\n resume(client)\n }\n }\n}\n\nfunction onParserTimeout (parser) {\n const { socket, timeoutType, client } = parser\n\n /* istanbul ignore else */\n if (timeoutType === TIMEOUT_HEADERS) {\n if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {\n assert(!parser.paused, 'cannot be paused while waiting for headers')\n util.destroy(socket, new HeadersTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_BODY) {\n if (!parser.paused) {\n util.destroy(socket, new BodyTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_IDLE) {\n assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue])\n util.destroy(socket, new InformationalError('socket idle timeout'))\n }\n}\n\nfunction onSocketReadable () {\n const { [kParser]: parser } = this\n if (parser) {\n parser.readMore()\n }\n}\n\nfunction onSocketError (err) {\n const { [kClient]: client, [kParser]: parser } = this\n\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n if (client[kHTTPConnVersion] !== 'h2') {\n // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded\n // to the user.\n if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so for as a valid response.\n parser.onMessageComplete()\n return\n }\n }\n\n this[kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onError (client, err) {\n if (\n client[kRunning] === 0 &&\n err.code !== 'UND_ERR_INFO' &&\n err.code !== 'UND_ERR_SOCKET'\n ) {\n // Error is not caused by running request and not a recoverable\n // socket error.\n\n assert(client[kPendingIdx] === client[kRunningIdx])\n\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n assert(client[kSize] === 0)\n }\n}\n\nfunction onSocketEnd () {\n const { [kParser]: parser, [kClient]: client } = this\n\n if (client[kHTTPConnVersion] !== 'h2') {\n if (parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n return\n }\n }\n\n util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this)))\n}\n\nfunction onSocketClose () {\n const { [kClient]: client, [kParser]: parser } = this\n\n if (client[kHTTPConnVersion] === 'h1' && parser) {\n if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n }\n\n this[kParser].destroy()\n this[kParser] = null\n }\n\n const err = this[kError] || new SocketError('closed', util.getSocketInfo(this))\n\n client[kSocket] = null\n\n if (client.destroyed) {\n assert(client[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect', client[kUrl], [client], err)\n\n resume(client)\n}\n\nasync function connect (client) {\n assert(!client[kConnecting])\n assert(!client[kSocket])\n\n let { host, hostname, protocol, port } = client[kUrl]\n\n // Resolve ipv6\n if (hostname[0] === '[') {\n const idx = hostname.indexOf(']')\n\n assert(idx !== -1)\n const ip = hostname.substring(1, idx)\n\n assert(net.isIP(ip))\n hostname = ip\n }\n\n client[kConnecting] = true\n\n if (channels.beforeConnect.hasSubscribers) {\n channels.beforeConnect.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector]\n })\n }\n\n try {\n const socket = await new Promise((resolve, reject) => {\n client[kConnector]({\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n }, (err, socket) => {\n if (err) {\n reject(err)\n } else {\n resolve(socket)\n }\n })\n })\n\n if (client.destroyed) {\n util.destroy(socket.on('error', () => {}), new ClientDestroyedError())\n return\n }\n\n client[kConnecting] = false\n\n assert(socket)\n\n const isH2 = socket.alpnProtocol === 'h2'\n if (isH2) {\n if (!h2ExperimentalWarned) {\n h2ExperimentalWarned = true\n process.emitWarning('H2 support is experimental, expect them to change at any time.', {\n code: 'UNDICI-H2'\n })\n }\n\n const session = http2.connect(client[kUrl], {\n createConnection: () => socket,\n peerMaxConcurrentStreams: client[kHTTP2SessionState].maxConcurrentStreams\n })\n\n client[kHTTPConnVersion] = 'h2'\n session[kClient] = client\n session[kSocket] = socket\n session.on('error', onHttp2SessionError)\n session.on('frameError', onHttp2FrameError)\n session.on('end', onHttp2SessionEnd)\n session.on('goaway', onHTTP2GoAway)\n session.on('close', onSocketClose)\n session.unref()\n\n client[kHTTP2Session] = session\n socket[kHTTP2Session] = session\n } else {\n if (!llhttpInstance) {\n llhttpInstance = await llhttpPromise\n llhttpPromise = null\n }\n\n socket[kNoRef] = false\n socket[kWriting] = false\n socket[kReset] = false\n socket[kBlocking] = false\n socket[kParser] = new Parser(client, socket, llhttpInstance)\n }\n\n socket[kCounter] = 0\n socket[kMaxRequests] = client[kMaxRequests]\n socket[kClient] = client\n socket[kError] = null\n\n socket\n .on('error', onSocketError)\n .on('readable', onSocketReadable)\n .on('end', onSocketEnd)\n .on('close', onSocketClose)\n\n client[kSocket] = socket\n\n if (channels.connected.hasSubscribers) {\n channels.connected.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n socket\n })\n }\n client.emit('connect', client[kUrl], [client])\n } catch (err) {\n if (client.destroyed) {\n return\n }\n\n client[kConnecting] = false\n\n if (channels.connectError.hasSubscribers) {\n channels.connectError.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n error: err\n })\n }\n\n if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') {\n assert(client[kRunning] === 0)\n while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {\n const request = client[kQueue][client[kPendingIdx]++]\n errorRequest(client, request, err)\n }\n } else {\n onError(client, err)\n }\n\n client.emit('connectionError', client[kUrl], [client], err)\n }\n\n resume(client)\n}\n\nfunction emitDrain (client) {\n client[kNeedDrain] = 0\n client.emit('drain', client[kUrl], [client])\n}\n\nfunction resume (client, sync) {\n if (client[kResuming] === 2) {\n return\n }\n\n client[kResuming] = 2\n\n _resume(client, sync)\n client[kResuming] = 0\n\n if (client[kRunningIdx] > 256) {\n client[kQueue].splice(0, client[kRunningIdx])\n client[kPendingIdx] -= client[kRunningIdx]\n client[kRunningIdx] = 0\n }\n}\n\nfunction _resume (client, sync) {\n while (true) {\n if (client.destroyed) {\n assert(client[kPending] === 0)\n return\n }\n\n if (client[kClosedResolve] && !client[kSize]) {\n client[kClosedResolve]()\n client[kClosedResolve] = null\n return\n }\n\n const socket = client[kSocket]\n\n if (socket && !socket.destroyed && socket.alpnProtocol !== 'h2') {\n if (client[kSize] === 0) {\n if (!socket[kNoRef] && socket.unref) {\n socket.unref()\n socket[kNoRef] = true\n }\n } else if (socket[kNoRef] && socket.ref) {\n socket.ref()\n socket[kNoRef] = false\n }\n\n if (client[kSize] === 0) {\n if (socket[kParser].timeoutType !== TIMEOUT_IDLE) {\n socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE)\n }\n } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {\n if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {\n const request = client[kQueue][client[kRunningIdx]]\n const headersTimeout = request.headersTimeout != null\n ? request.headersTimeout\n : client[kHeadersTimeout]\n socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS)\n }\n }\n }\n\n if (client[kBusy]) {\n client[kNeedDrain] = 2\n } else if (client[kNeedDrain] === 2) {\n if (sync) {\n client[kNeedDrain] = 1\n process.nextTick(emitDrain, client)\n } else {\n emitDrain(client)\n }\n continue\n }\n\n if (client[kPending] === 0) {\n return\n }\n\n if (client[kRunning] >= (client[kPipelining] || 1)) {\n return\n }\n\n const request = client[kQueue][client[kPendingIdx]]\n\n if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) {\n if (client[kRunning] > 0) {\n return\n }\n\n client[kServerName] = request.servername\n\n if (socket && socket.servername !== request.servername) {\n util.destroy(socket, new InformationalError('servername changed'))\n return\n }\n }\n\n if (client[kConnecting]) {\n return\n }\n\n if (!socket && !client[kHTTP2Session]) {\n connect(client)\n return\n }\n\n if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) {\n return\n }\n\n if (client[kRunning] > 0 && !request.idempotent) {\n // Non-idempotent request cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) {\n // Don't dispatch an upgrade until all preceding requests have completed.\n // A misbehaving server might upgrade the connection before all pipelined\n // request has completed.\n return\n }\n\n if (client[kRunning] > 0 && util.bodyLength(request.body) !== 0 &&\n (util.isStream(request.body) || util.isAsyncIterable(request.body))) {\n // Request with stream or iterator body can error while other requests\n // are inflight and indirectly error those as well.\n // Ensure this doesn't happen by waiting for inflight\n // to complete before dispatching.\n\n // Request with stream or iterator body cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (!request.aborted && write(client, request)) {\n client[kPendingIdx]++\n } else {\n client[kQueue].splice(client[kPendingIdx], 1)\n }\n }\n}\n\n// https://www.rfc-editor.org/rfc/rfc7230#section-3.3.2\nfunction shouldSendContentLength (method) {\n return method !== 'GET' && method !== 'HEAD' && method !== 'OPTIONS' && method !== 'TRACE' && method !== 'CONNECT'\n}\n\nfunction write (client, request) {\n if (client[kHTTPConnVersion] === 'h2') {\n writeH2(client, client[kHTTP2Session], request)\n return\n }\n\n const { body, method, path, host, upgrade, headers, blocking, reset } = request\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n const bodyLength = util.bodyLength(body)\n\n let contentLength = bodyLength\n\n if (contentLength === null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 && !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n // https://github.com/nodejs/undici/issues/2046\n // A user agent may send a Content-Length header with 0 value, this should be allowed.\n if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength !== null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n const socket = client[kSocket]\n\n try {\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n\n util.destroy(socket, new InformationalError('aborted'))\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n if (method === 'HEAD') {\n // https://github.com/mcollina/undici/issues/258\n // Close after a HEAD request to interop with misbehaving servers\n // that may send a body in the response.\n\n socket[kReset] = true\n }\n\n if (upgrade || method === 'CONNECT') {\n // On CONNECT or upgrade, block pipeline from dispatching further\n // requests on this connection.\n\n socket[kReset] = true\n }\n\n if (reset != null) {\n socket[kReset] = reset\n }\n\n if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {\n socket[kReset] = true\n }\n\n if (blocking) {\n socket[kBlocking] = true\n }\n\n let header = `${method} ${path} HTTP/1.1\\r\\n`\n\n if (typeof host === 'string') {\n header += `host: ${host}\\r\\n`\n } else {\n header += client[kHostHeader]\n }\n\n if (upgrade) {\n header += `connection: upgrade\\r\\nupgrade: ${upgrade}\\r\\n`\n } else if (client[kPipelining] && !socket[kReset]) {\n header += 'connection: keep-alive\\r\\n'\n } else {\n header += 'connection: close\\r\\n'\n }\n\n if (headers) {\n header += headers\n }\n\n if (channels.sendHeaders.hasSubscribers) {\n channels.sendHeaders.publish({ request, headers: header, socket })\n }\n\n /* istanbul ignore else: assertion */\n if (!body || bodyLength === 0) {\n if (contentLength === 0) {\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n assert(contentLength === null, 'no body must not have content length')\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(body)\n socket.uncork()\n request.onBodySent(body)\n request.onRequestSent()\n if (!expectsPayload) {\n socket[kReset] = true\n }\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload })\n } else {\n writeBlob({ body, client, request, socket, contentLength, header, expectsPayload })\n }\n } else if (util.isStream(body)) {\n writeStream({ body, client, request, socket, contentLength, header, expectsPayload })\n } else if (util.isIterable(body)) {\n writeIterable({ body, client, request, socket, contentLength, header, expectsPayload })\n } else {\n assert(false)\n }\n\n return true\n}\n\nfunction writeH2 (client, session, request) {\n const { body, method, path, host, upgrade, expectContinue, signal, headers: reqHeaders } = request\n\n let headers\n if (typeof reqHeaders === 'string') headers = Request[kHTTP2CopyHeaders](reqHeaders.trim())\n else headers = reqHeaders\n\n if (upgrade) {\n errorRequest(client, request, new Error('Upgrade not supported for H2'))\n return false\n }\n\n try {\n // TODO(HTTP/2): Should we call onConnect immediately or on stream ready event?\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n /** @type {import('node:http2').ClientHttp2Stream} */\n let stream\n const h2State = client[kHTTP2SessionState]\n\n headers[HTTP2_HEADER_AUTHORITY] = host || client[kHost]\n headers[HTTP2_HEADER_METHOD] = method\n\n if (method === 'CONNECT') {\n session.ref()\n // we are already connected, streams are pending, first request\n // will create a new stream. We trigger a request to create the stream and wait until\n // `ready` event is triggered\n // We disabled endStream to allow the user to write to the stream\n stream = session.request(headers, { endStream: false, signal })\n\n if (stream.id && !stream.pending) {\n request.onUpgrade(null, null, stream)\n ++h2State.openStreams\n } else {\n stream.once('ready', () => {\n request.onUpgrade(null, null, stream)\n ++h2State.openStreams\n })\n }\n\n stream.once('close', () => {\n h2State.openStreams -= 1\n // TODO(HTTP/2): unref only if current streams count is 0\n if (h2State.openStreams === 0) session.unref()\n })\n\n return true\n }\n\n // https://tools.ietf.org/html/rfc7540#section-8.3\n // :path and :scheme headers must be omited when sending CONNECT\n\n headers[HTTP2_HEADER_PATH] = path\n headers[HTTP2_HEADER_SCHEME] = 'https'\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n let contentLength = util.bodyLength(body)\n\n if (contentLength == null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 || !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n // https://github.com/nodejs/undici/issues/2046\n // A user agent may send a Content-Length header with 0 value, this should be allowed.\n if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength != null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n if (contentLength != null) {\n assert(body, 'no body must not have content length')\n headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}`\n }\n\n session.ref()\n\n const shouldEndStream = method === 'GET' || method === 'HEAD'\n if (expectContinue) {\n headers[HTTP2_HEADER_EXPECT] = '100-continue'\n stream = session.request(headers, { endStream: shouldEndStream, signal })\n\n stream.once('continue', writeBodyH2)\n } else {\n stream = session.request(headers, {\n endStream: shouldEndStream,\n signal\n })\n writeBodyH2()\n }\n\n // Increment counter as we have new several streams open\n ++h2State.openStreams\n\n stream.once('response', headers => {\n const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers\n\n if (request.onHeaders(Number(statusCode), realHeaders, stream.resume.bind(stream), '') === false) {\n stream.pause()\n }\n })\n\n stream.once('end', () => {\n request.onComplete([])\n })\n\n stream.on('data', (chunk) => {\n if (request.onData(chunk) === false) {\n stream.pause()\n }\n })\n\n stream.once('close', () => {\n h2State.openStreams -= 1\n // TODO(HTTP/2): unref only if current streams count is 0\n if (h2State.openStreams === 0) {\n session.unref()\n }\n })\n\n stream.once('error', function (err) {\n if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) {\n h2State.streams -= 1\n util.destroy(stream, err)\n }\n })\n\n stream.once('frameError', (type, code) => {\n const err = new InformationalError(`HTTP/2: \"frameError\" received - type ${type}, code ${code}`)\n errorRequest(client, request, err)\n\n if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) {\n h2State.streams -= 1\n util.destroy(stream, err)\n }\n })\n\n // stream.on('aborted', () => {\n // // TODO(HTTP/2): Support aborted\n // })\n\n // stream.on('timeout', () => {\n // // TODO(HTTP/2): Support timeout\n // })\n\n // stream.on('push', headers => {\n // // TODO(HTTP/2): Suppor push\n // })\n\n // stream.on('trailers', headers => {\n // // TODO(HTTP/2): Support trailers\n // })\n\n return true\n\n function writeBodyH2 () {\n /* istanbul ignore else: assertion */\n if (!body) {\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n stream.cork()\n stream.write(body)\n stream.uncork()\n stream.end()\n request.onBodySent(body)\n request.onRequestSent()\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({\n client,\n request,\n contentLength,\n h2stream: stream,\n expectsPayload,\n body: body.stream(),\n socket: client[kSocket],\n header: ''\n })\n } else {\n writeBlob({\n body,\n client,\n request,\n contentLength,\n expectsPayload,\n h2stream: stream,\n header: '',\n socket: client[kSocket]\n })\n }\n } else if (util.isStream(body)) {\n writeStream({\n body,\n client,\n request,\n contentLength,\n expectsPayload,\n socket: client[kSocket],\n h2stream: stream,\n header: ''\n })\n } else if (util.isIterable(body)) {\n writeIterable({\n body,\n client,\n request,\n contentLength,\n expectsPayload,\n header: '',\n h2stream: stream,\n socket: client[kSocket]\n })\n } else {\n assert(false)\n }\n }\n}\n\nfunction writeStream ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined')\n\n if (client[kHTTPConnVersion] === 'h2') {\n // For HTTP/2, is enough to pipe the stream\n const pipe = pipeline(\n body,\n h2stream,\n (err) => {\n if (err) {\n util.destroy(body, err)\n util.destroy(h2stream, err)\n } else {\n request.onRequestSent()\n }\n }\n )\n\n pipe.on('data', onPipeData)\n pipe.once('end', () => {\n pipe.removeListener('data', onPipeData)\n util.destroy(pipe)\n })\n\n function onPipeData (chunk) {\n request.onBodySent(chunk)\n }\n\n return\n }\n\n let finished = false\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n\n const onData = function (chunk) {\n if (finished) {\n return\n }\n\n try {\n if (!writer.write(chunk) && this.pause) {\n this.pause()\n }\n } catch (err) {\n util.destroy(this, err)\n }\n }\n const onDrain = function () {\n if (finished) {\n return\n }\n\n if (body.resume) {\n body.resume()\n }\n }\n const onAbort = function () {\n if (finished) {\n return\n }\n const err = new RequestAbortedError()\n queueMicrotask(() => onFinished(err))\n }\n const onFinished = function (err) {\n if (finished) {\n return\n }\n\n finished = true\n\n assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1))\n\n socket\n .off('drain', onDrain)\n .off('error', onFinished)\n\n body\n .removeListener('data', onData)\n .removeListener('end', onFinished)\n .removeListener('error', onFinished)\n .removeListener('close', onAbort)\n\n if (!err) {\n try {\n writer.end()\n } catch (er) {\n err = er\n }\n }\n\n writer.destroy(err)\n\n if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) {\n util.destroy(body, err)\n } else {\n util.destroy(body)\n }\n }\n\n body\n .on('data', onData)\n .on('end', onFinished)\n .on('error', onFinished)\n .on('close', onAbort)\n\n if (body.resume) {\n body.resume()\n }\n\n socket\n .on('drain', onDrain)\n .on('error', onFinished)\n}\n\nasync function writeBlob ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength === body.size, 'blob body must have content length')\n\n const isH2 = client[kHTTPConnVersion] === 'h2'\n try {\n if (contentLength != null && contentLength !== body.size) {\n throw new RequestContentLengthMismatchError()\n }\n\n const buffer = Buffer.from(await body.arrayBuffer())\n\n if (isH2) {\n h2stream.cork()\n h2stream.write(buffer)\n h2stream.uncork()\n } else {\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(buffer)\n socket.uncork()\n }\n\n request.onBodySent(buffer)\n request.onRequestSent()\n\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n resume(client)\n } catch (err) {\n util.destroy(isH2 ? h2stream : socket, err)\n }\n}\n\nasync function writeIterable ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined')\n\n let callback = null\n function onDrain () {\n if (callback) {\n const cb = callback\n callback = null\n cb()\n }\n }\n\n const waitForDrain = () => new Promise((resolve, reject) => {\n assert(callback === null)\n\n if (socket[kError]) {\n reject(socket[kError])\n } else {\n callback = resolve\n }\n })\n\n if (client[kHTTPConnVersion] === 'h2') {\n h2stream\n .on('close', onDrain)\n .on('drain', onDrain)\n\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n const res = h2stream.write(chunk)\n request.onBodySent(chunk)\n if (!res) {\n await waitForDrain()\n }\n }\n } catch (err) {\n h2stream.destroy(err)\n } finally {\n request.onRequestSent()\n h2stream.end()\n h2stream\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n\n return\n }\n\n socket\n .on('close', onDrain)\n .on('drain', onDrain)\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (!writer.write(chunk)) {\n await waitForDrain()\n }\n }\n\n writer.end()\n } catch (err) {\n writer.destroy(err)\n } finally {\n socket\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n}\n\nclass AsyncWriter {\n constructor ({ socket, request, contentLength, client, expectsPayload, header }) {\n this.socket = socket\n this.request = request\n this.contentLength = contentLength\n this.client = client\n this.bytesWritten = 0\n this.expectsPayload = expectsPayload\n this.header = header\n\n socket[kWriting] = true\n }\n\n write (chunk) {\n const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return false\n }\n\n const len = Buffer.byteLength(chunk)\n if (!len) {\n return true\n }\n\n // We should defer writing chunks.\n if (contentLength !== null && bytesWritten + len > contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n socket.cork()\n\n if (bytesWritten === 0) {\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n if (contentLength === null) {\n socket.write(`${header}transfer-encoding: chunked\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n }\n }\n\n if (contentLength === null) {\n socket.write(`\\r\\n${len.toString(16)}\\r\\n`, 'latin1')\n }\n\n this.bytesWritten += len\n\n const ret = socket.write(chunk)\n\n socket.uncork()\n\n request.onBodySent(chunk)\n\n if (!ret) {\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n }\n\n return ret\n }\n\n end () {\n const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this\n request.onRequestSent()\n\n socket[kWriting] = false\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return\n }\n\n if (bytesWritten === 0) {\n if (expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body.\n\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n } else if (contentLength === null) {\n socket.write('\\r\\n0\\r\\n\\r\\n', 'latin1')\n }\n\n if (contentLength !== null && bytesWritten !== contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n } else {\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n }\n\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n\n resume(client)\n }\n\n destroy (err) {\n const { socket, client } = this\n\n socket[kWriting] = false\n\n if (err) {\n assert(client[kRunning] <= 1, 'pipeline should only contain this request')\n util.destroy(socket, err)\n }\n }\n}\n\nfunction errorRequest (client, request, err) {\n try {\n request.onError(err)\n assert(request.aborted)\n } catch (err) {\n client.emit('error', err)\n }\n}\n\nmodule.exports = Client\n","/* eslint-disable */\n\n'use strict'\n\n// Extracted from node/lib/internal/fixed_queue.js\n\n// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize = 2048;\nconst kMask = kSize - 1;\n\n// The FixedQueue is implemented as a singly-linked list of fixed-size\n// circular buffers. It looks something like this:\n//\n// head tail\n// | |\n// v v\n// +-----------+ <-----\\ +-----------+ <------\\ +-----------+\n// | [null] | \\----- | next | \\------- | next |\n// +-----------+ +-----------+ +-----------+\n// | item | <-- bottom | item | <-- bottom | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | bottom --> | item |\n// | item | | item | | item |\n// | ... | | ... | | ... |\n// | item | | item | | item |\n// | item | | item | | item |\n// | [empty] | <-- top | item | | item |\n// | [empty] | | item | | item |\n// | [empty] | | [empty] | <-- top top --> | [empty] |\n// +-----------+ +-----------+ +-----------+\n//\n// Or, if there is only one circular buffer, it looks something\n// like either of these:\n//\n// head tail head tail\n// | | | |\n// v v v v\n// +-----------+ +-----------+\n// | [null] | | [null] |\n// +-----------+ +-----------+\n// | [empty] | | item |\n// | [empty] | | item |\n// | item | <-- bottom top --> | [empty] |\n// | item | | [empty] |\n// | [empty] | <-- top bottom --> | item |\n// | [empty] | | item |\n// +-----------+ +-----------+\n//\n// Adding a value means moving `top` forward by one, removing means\n// moving `bottom` forward by one. After reaching the end, the queue\n// wraps around.\n//\n// When `top === bottom` the current queue is empty and when\n// `top + 1 === bottom` it's full. This wastes a single space of storage\n// but allows much quicker checks.\n\nclass FixedCircularBuffer {\n constructor() {\n this.bottom = 0;\n this.top = 0;\n this.list = new Array(kSize);\n this.next = null;\n }\n\n isEmpty() {\n return this.top === this.bottom;\n }\n\n isFull() {\n return ((this.top + 1) & kMask) === this.bottom;\n }\n\n push(data) {\n this.list[this.top] = data;\n this.top = (this.top + 1) & kMask;\n }\n\n shift() {\n const nextItem = this.list[this.bottom];\n if (nextItem === undefined)\n return null;\n this.list[this.bottom] = undefined;\n this.bottom = (this.bottom + 1) & kMask;\n return nextItem;\n }\n}\n\nmodule.exports = class FixedQueue {\n constructor() {\n this.head = this.tail = new FixedCircularBuffer();\n }\n\n isEmpty() {\n return this.head.isEmpty();\n }\n\n push(data) {\n if (this.head.isFull()) {\n // Head is full: Creates a new queue, sets the old queue's `.next` to it,\n // and sets it as the new main queue.\n this.head = this.head.next = new FixedCircularBuffer();\n }\n this.head.push(data);\n }\n\n shift() {\n const tail = this.tail;\n const next = tail.shift();\n if (tail.isEmpty() && tail.next !== null) {\n // If there is another queue, it forms the new tail.\n this.tail = tail.next;\n }\n return next;\n }\n};\n","const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require('./core/symbols')\nconst kPool = Symbol('pool')\n\nclass PoolStats {\n constructor (pool) {\n this[kPool] = pool\n }\n\n get connected () {\n return this[kPool][kConnected]\n }\n\n get free () {\n return this[kPool][kFree]\n }\n\n get pending () {\n return this[kPool][kPending]\n }\n\n get queued () {\n return this[kPool][kQueued]\n }\n\n get running () {\n return this[kPool][kRunning]\n }\n\n get size () {\n return this[kPool][kSize]\n }\n}\n\nmodule.exports = PoolStats\n","'use strict'\n\nconst DispatcherBase = require('./dispatcher-base')\nconst FixedQueue = require('./node/fixed-queue')\nconst { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require('./core/symbols')\nconst PoolStats = require('./pool-stats')\n\nconst kClients = Symbol('clients')\nconst kNeedDrain = Symbol('needDrain')\nconst kQueue = Symbol('queue')\nconst kClosedResolve = Symbol('closed resolve')\nconst kOnDrain = Symbol('onDrain')\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kGetDispatcher = Symbol('get dispatcher')\nconst kAddClient = Symbol('add client')\nconst kRemoveClient = Symbol('remove client')\nconst kStats = Symbol('stats')\n\nclass PoolBase extends DispatcherBase {\n constructor () {\n super()\n\n this[kQueue] = new FixedQueue()\n this[kClients] = []\n this[kQueued] = 0\n\n const pool = this\n\n this[kOnDrain] = function onDrain (origin, targets) {\n const queue = pool[kQueue]\n\n let needDrain = false\n\n while (!needDrain) {\n const item = queue.shift()\n if (!item) {\n break\n }\n pool[kQueued]--\n needDrain = !this.dispatch(item.opts, item.handler)\n }\n\n this[kNeedDrain] = needDrain\n\n if (!this[kNeedDrain] && pool[kNeedDrain]) {\n pool[kNeedDrain] = false\n pool.emit('drain', origin, [pool, ...targets])\n }\n\n if (pool[kClosedResolve] && queue.isEmpty()) {\n Promise\n .all(pool[kClients].map(c => c.close()))\n .then(pool[kClosedResolve])\n }\n }\n\n this[kOnConnect] = (origin, targets) => {\n pool.emit('connect', origin, [pool, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n pool.emit('disconnect', origin, [pool, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n pool.emit('connectionError', origin, [pool, ...targets], err)\n }\n\n this[kStats] = new PoolStats(this)\n }\n\n get [kBusy] () {\n return this[kNeedDrain]\n }\n\n get [kConnected] () {\n return this[kClients].filter(client => client[kConnected]).length\n }\n\n get [kFree] () {\n return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length\n }\n\n get [kPending] () {\n let ret = this[kQueued]\n for (const { [kPending]: pending } of this[kClients]) {\n ret += pending\n }\n return ret\n }\n\n get [kRunning] () {\n let ret = 0\n for (const { [kRunning]: running } of this[kClients]) {\n ret += running\n }\n return ret\n }\n\n get [kSize] () {\n let ret = this[kQueued]\n for (const { [kSize]: size } of this[kClients]) {\n ret += size\n }\n return ret\n }\n\n get stats () {\n return this[kStats]\n }\n\n async [kClose] () {\n if (this[kQueue].isEmpty()) {\n return Promise.all(this[kClients].map(c => c.close()))\n } else {\n return new Promise((resolve) => {\n this[kClosedResolve] = resolve\n })\n }\n }\n\n async [kDestroy] (err) {\n while (true) {\n const item = this[kQueue].shift()\n if (!item) {\n break\n }\n item.handler.onError(err)\n }\n\n return Promise.all(this[kClients].map(c => c.destroy(err)))\n }\n\n [kDispatch] (opts, handler) {\n const dispatcher = this[kGetDispatcher]()\n\n if (!dispatcher) {\n this[kNeedDrain] = true\n this[kQueue].push({ opts, handler })\n this[kQueued]++\n } else if (!dispatcher.dispatch(opts, handler)) {\n dispatcher[kNeedDrain] = true\n this[kNeedDrain] = !this[kGetDispatcher]()\n }\n\n return !this[kNeedDrain]\n }\n\n [kAddClient] (client) {\n client\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].push(client)\n\n if (this[kNeedDrain]) {\n process.nextTick(() => {\n if (this[kNeedDrain]) {\n this[kOnDrain](client[kUrl], [this, client])\n }\n })\n }\n\n return this\n }\n\n [kRemoveClient] (client) {\n client.close(() => {\n const idx = this[kClients].indexOf(client)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n })\n\n this[kNeedDrain] = this[kClients].some(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n }\n}\n\nmodule.exports = {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n}\n","'use strict'\n\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Client = require('./client')\nconst {\n InvalidArgumentError\n} = require('./core/errors')\nconst util = require('./core/util')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst buildConnector = require('./core/connect')\n\nconst kOptions = Symbol('options')\nconst kConnections = Symbol('connections')\nconst kFactory = Symbol('factory')\n\nfunction defaultFactory (origin, opts) {\n return new Client(origin, opts)\n}\n\nclass Pool extends PoolBase {\n constructor (origin, {\n connections,\n factory = defaultFactory,\n connect,\n connectTimeout,\n tls,\n maxCachedSessions,\n socketPath,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n allowH2,\n ...options\n } = {}) {\n super()\n\n if (connections != null && (!Number.isFinite(connections) || connections < 0)) {\n throw new InvalidArgumentError('invalid connections')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n allowH2,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool)\n ? options.interceptors.Pool\n : []\n this[kConnections] = connections || null\n this[kUrl] = util.parseOrigin(origin)\n this[kOptions] = { ...util.deepClone(options), connect, allowH2 }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kFactory] = factory\n\n this.on('connectionError', (origin, targets, error) => {\n // If a connection error occurs, we remove the client from the pool,\n // and emit a connectionError event. They will not be re-used.\n // Fixes https://github.com/nodejs/undici/issues/3895\n for (const target of targets) {\n // Do not use kRemoveClient here, as it will close the client,\n // but the client cannot be closed in this state.\n const idx = this[kClients].indexOf(target)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n }\n })\n }\n\n [kGetDispatcher] () {\n let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain])\n\n if (dispatcher) {\n return dispatcher\n }\n\n if (!this[kConnections] || this[kClients].length < this[kConnections]) {\n dispatcher = this[kFactory](this[kUrl], this[kOptions])\n this[kAddClient](dispatcher)\n }\n\n return dispatcher\n }\n}\n\nmodule.exports = Pool\n","'use strict'\n\nconst {\n BalancedPoolMissingUpstreamError,\n InvalidArgumentError\n} = require('./core/errors')\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Pool = require('./pool')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst { parseOrigin } = require('./core/util')\nconst kFactory = Symbol('factory')\n\nconst kOptions = Symbol('options')\nconst kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor')\nconst kCurrentWeight = Symbol('kCurrentWeight')\nconst kIndex = Symbol('kIndex')\nconst kWeight = Symbol('kWeight')\nconst kMaxWeightPerServer = Symbol('kMaxWeightPerServer')\nconst kErrorPenalty = Symbol('kErrorPenalty')\n\nfunction getGreatestCommonDivisor (a, b) {\n if (b === 0) return a\n return getGreatestCommonDivisor(b, a % b)\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass BalancedPool extends PoolBase {\n constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) {\n super()\n\n this[kOptions] = opts\n this[kIndex] = -1\n this[kCurrentWeight] = 0\n\n this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100\n this[kErrorPenalty] = this[kOptions].errorPenalty || 15\n\n if (!Array.isArray(upstreams)) {\n upstreams = [upstreams]\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool)\n ? opts.interceptors.BalancedPool\n : []\n this[kFactory] = factory\n\n for (const upstream of upstreams) {\n this.addUpstream(upstream)\n }\n this._updateBalancedPoolStats()\n }\n\n addUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n if (this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))) {\n return this\n }\n const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]))\n\n this[kAddClient](pool)\n pool.on('connect', () => {\n pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty])\n })\n\n pool.on('connectionError', () => {\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n })\n\n pool.on('disconnect', (...args) => {\n const err = args[2]\n if (err && err.code === 'UND_ERR_SOCKET') {\n // decrease the weight of the pool.\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n }\n })\n\n for (const client of this[kClients]) {\n client[kWeight] = this[kMaxWeightPerServer]\n }\n\n this._updateBalancedPoolStats()\n\n return this\n }\n\n _updateBalancedPoolStats () {\n this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0)\n }\n\n removeUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n const pool = this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))\n\n if (pool) {\n this[kRemoveClient](pool)\n }\n\n return this\n }\n\n get upstreams () {\n return this[kClients]\n .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true)\n .map((p) => p[kUrl].origin)\n }\n\n [kGetDispatcher] () {\n // We validate that pools is greater than 0,\n // otherwise we would have to wait until an upstream\n // is added, which might never happen.\n if (this[kClients].length === 0) {\n throw new BalancedPoolMissingUpstreamError()\n }\n\n const dispatcher = this[kClients].find(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n\n if (!dispatcher) {\n return\n }\n\n const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true)\n\n if (allClientsBusy) {\n return\n }\n\n let counter = 0\n\n let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain])\n\n while (counter++ < this[kClients].length) {\n this[kIndex] = (this[kIndex] + 1) % this[kClients].length\n const pool = this[kClients][this[kIndex]]\n\n // find pool index with the largest weight\n if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {\n maxWeightIndex = this[kIndex]\n }\n\n // decrease the current weight every `this[kClients].length`.\n if (this[kIndex] === 0) {\n // Set the current weight to the next lower weight.\n this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]\n\n if (this[kCurrentWeight] <= 0) {\n this[kCurrentWeight] = this[kMaxWeightPerServer]\n }\n }\n if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) {\n return pool\n }\n }\n\n this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]\n this[kIndex] = maxWeightIndex\n return this[kClients][maxWeightIndex]\n }\n}\n\nmodule.exports = BalancedPool\n","'use strict'\n\n/* istanbul ignore file: only for Node 12 */\n\nconst { kConnected, kSize } = require('../core/symbols')\n\nclass CompatWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value[kConnected] === 0 && this.value[kSize] === 0\n ? undefined\n : this.value\n }\n}\n\nclass CompatFinalizer {\n constructor (finalizer) {\n this.finalizer = finalizer\n }\n\n register (dispatcher, key) {\n if (dispatcher.on) {\n dispatcher.on('disconnect', () => {\n if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) {\n this.finalizer(key)\n }\n })\n }\n }\n}\n\nmodule.exports = function () {\n // FIXME: remove workaround when the Node bug is fixed\n // https://github.com/nodejs/node/issues/49344#issuecomment-1741776308\n if (process.env.NODE_V8_COVERAGE) {\n return {\n WeakRef: CompatWeakRef,\n FinalizationRegistry: CompatFinalizer\n }\n }\n return {\n WeakRef: global.WeakRef || CompatWeakRef,\n FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer\n }\n}\n","'use strict'\n\nconst { InvalidArgumentError } = require('./core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('./core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('./core/util')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst { WeakRef, FinalizationRegistry } = require('./compat/dispatcher-weakref')()\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kFinalizer = Symbol('finalizer')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n super()\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => {\n const ref = this[kClients].get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this[kClients].delete(key)\n }\n })\n\n const agent = this\n\n this[kOnDrain] = (origin, targets) => {\n agent.emit('drain', origin, [agent, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n agent.emit('connect', origin, [agent, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n agent.emit('disconnect', origin, [agent, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n agent.emit('connectionError', origin, [agent, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore next: gc is undeterministic */\n if (client) {\n ret += client[kRunning]\n }\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n const ref = this[kClients].get(key)\n\n let dispatcher = ref ? ref.deref() : null\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].set(key, new WeakRef(dispatcher))\n this[kFinalizer].register(dispatcher, key)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n closePromises.push(client.close())\n }\n }\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n destroyPromises.push(client.destroy(err))\n }\n }\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n","// Ported from https://github.com/nodejs/undici/pull/907\n\n'use strict'\n\nconst assert = require('assert')\nconst { Readable } = require('stream')\nconst { RequestAbortedError, NotSupportedError, InvalidArgumentError } = require('../core/errors')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString } = require('../core/util')\n\nlet Blob\n\nconst kConsume = Symbol('kConsume')\nconst kReading = Symbol('kReading')\nconst kBody = Symbol('kBody')\nconst kAbort = Symbol('abort')\nconst kContentType = Symbol('kContentType')\n\nconst noop = () => {}\n\nmodule.exports = class BodyReadable extends Readable {\n constructor ({\n resume,\n abort,\n contentType = '',\n highWaterMark = 64 * 1024 // Same as nodejs fs streams.\n }) {\n super({\n autoDestroy: true,\n read: resume,\n highWaterMark\n })\n\n this._readableState.dataEmitted = false\n\n this[kAbort] = abort\n this[kConsume] = null\n this[kBody] = null\n this[kContentType] = contentType\n\n // Is stream being consumed through Readable API?\n // This is an optimization so that we avoid checking\n // for 'data' and 'readable' listeners in the hot path\n // inside push().\n this[kReading] = false\n }\n\n destroy (err) {\n if (this.destroyed) {\n // Node < 16\n return this\n }\n\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (err) {\n this[kAbort]()\n }\n\n return super.destroy(err)\n }\n\n emit (ev, ...args) {\n if (ev === 'data') {\n // Node < 16.7\n this._readableState.dataEmitted = true\n } else if (ev === 'error') {\n // Node < 16\n this._readableState.errorEmitted = true\n }\n return super.emit(ev, ...args)\n }\n\n on (ev, ...args) {\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = true\n }\n return super.on(ev, ...args)\n }\n\n addListener (ev, ...args) {\n return this.on(ev, ...args)\n }\n\n off (ev, ...args) {\n const ret = super.off(ev, ...args)\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = (\n this.listenerCount('data') > 0 ||\n this.listenerCount('readable') > 0\n )\n }\n return ret\n }\n\n removeListener (ev, ...args) {\n return this.off(ev, ...args)\n }\n\n push (chunk) {\n if (this[kConsume] && chunk !== null && this.readableLength === 0) {\n consumePush(this[kConsume], chunk)\n return this[kReading] ? super.push(chunk) : true\n }\n return super.push(chunk)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-text\n async text () {\n return consume(this, 'text')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-json\n async json () {\n return consume(this, 'json')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-blob\n async blob () {\n return consume(this, 'blob')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-arraybuffer\n async arrayBuffer () {\n return consume(this, 'arrayBuffer')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-formdata\n async formData () {\n // TODO: Implement.\n throw new NotSupportedError()\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-bodyused\n get bodyUsed () {\n return util.isDisturbed(this)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-body\n get body () {\n if (!this[kBody]) {\n this[kBody] = ReadableStreamFrom(this)\n if (this[kConsume]) {\n // TODO: Is this the best way to force a lock?\n this[kBody].getReader() // Ensure stream is locked.\n assert(this[kBody].locked)\n }\n }\n return this[kBody]\n }\n\n dump (opts) {\n let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144\n const signal = opts && opts.signal\n\n if (signal) {\n try {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new InvalidArgumentError('signal must be an AbortSignal')\n }\n util.throwIfAborted(signal)\n } catch (err) {\n return Promise.reject(err)\n }\n }\n\n if (this.closed) {\n return Promise.resolve(null)\n }\n\n return new Promise((resolve, reject) => {\n const signalListenerCleanup = signal\n ? util.addAbortListener(signal, () => {\n this.destroy()\n })\n : noop\n\n this\n .on('close', function () {\n signalListenerCleanup()\n if (signal && signal.aborted) {\n reject(signal.reason || Object.assign(new Error('The operation was aborted'), { name: 'AbortError' }))\n } else {\n resolve(null)\n }\n })\n .on('error', noop)\n .on('data', function (chunk) {\n limit -= chunk.length\n if (limit <= 0) {\n this.destroy()\n }\n })\n .resume()\n })\n }\n}\n\n// https://streams.spec.whatwg.org/#readablestream-locked\nfunction isLocked (self) {\n // Consume is an implicit lock.\n return (self[kBody] && self[kBody].locked === true) || self[kConsume]\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction isUnusable (self) {\n return util.isDisturbed(self) || isLocked(self)\n}\n\nasync function consume (stream, type) {\n if (isUnusable(stream)) {\n throw new TypeError('unusable')\n }\n\n assert(!stream[kConsume])\n\n return new Promise((resolve, reject) => {\n stream[kConsume] = {\n type,\n stream,\n resolve,\n reject,\n length: 0,\n body: []\n }\n\n stream\n .on('error', function (err) {\n consumeFinish(this[kConsume], err)\n })\n .on('close', function () {\n if (this[kConsume].body !== null) {\n consumeFinish(this[kConsume], new RequestAbortedError())\n }\n })\n\n process.nextTick(consumeStart, stream[kConsume])\n })\n}\n\nfunction consumeStart (consume) {\n if (consume.body === null) {\n return\n }\n\n const { _readableState: state } = consume.stream\n\n for (const chunk of state.buffer) {\n consumePush(consume, chunk)\n }\n\n if (state.endEmitted) {\n consumeEnd(this[kConsume])\n } else {\n consume.stream.on('end', function () {\n consumeEnd(this[kConsume])\n })\n }\n\n consume.stream.resume()\n\n while (consume.stream.read() != null) {\n // Loop\n }\n}\n\nfunction consumeEnd (consume) {\n const { type, body, resolve, stream, length } = consume\n\n try {\n if (type === 'text') {\n resolve(toUSVString(Buffer.concat(body)))\n } else if (type === 'json') {\n resolve(JSON.parse(Buffer.concat(body)))\n } else if (type === 'arrayBuffer') {\n const dst = new Uint8Array(length)\n\n let pos = 0\n for (const buf of body) {\n dst.set(buf, pos)\n pos += buf.byteLength\n }\n\n resolve(dst.buffer)\n } else if (type === 'blob') {\n if (!Blob) {\n Blob = require('buffer').Blob\n }\n resolve(new Blob(body, { type: stream[kContentType] }))\n }\n\n consumeFinish(consume)\n } catch (err) {\n stream.destroy(err)\n }\n}\n\nfunction consumePush (consume, chunk) {\n consume.length += chunk.length\n consume.body.push(chunk)\n}\n\nfunction consumeFinish (consume, err) {\n if (consume.body === null) {\n return\n }\n\n if (err) {\n consume.reject(err)\n } else {\n consume.resolve()\n }\n\n consume.type = null\n consume.stream = null\n consume.resolve = null\n consume.reject = null\n consume.length = 0\n consume.body = null\n}\n","const assert = require('assert')\nconst {\n ResponseStatusCodeError\n} = require('../core/errors')\nconst { toUSVString } = require('../core/util')\n\nasync function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) {\n assert(body)\n\n let chunks = []\n let limit = 0\n\n for await (const chunk of body) {\n chunks.push(chunk)\n limit += chunk.length\n if (limit > 128 * 1024) {\n chunks = null\n break\n }\n }\n\n if (statusCode === 204 || !contentType || !chunks) {\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n return\n }\n\n try {\n if (contentType.startsWith('application/json')) {\n const payload = JSON.parse(toUSVString(Buffer.concat(chunks)))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n\n if (contentType.startsWith('text/')) {\n const payload = toUSVString(Buffer.concat(chunks))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n } catch (err) {\n // Process in a fallback if error\n }\n\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n}\n\nmodule.exports = { getResolveErrorBodyCallback }\n","const { addAbortListener } = require('../core/util')\nconst { RequestAbortedError } = require('../core/errors')\n\nconst kListener = Symbol('kListener')\nconst kSignal = Symbol('kSignal')\n\nfunction abort (self) {\n if (self.abort) {\n self.abort()\n } else {\n self.onError(new RequestAbortedError())\n }\n}\n\nfunction addSignal (self, signal) {\n self[kSignal] = null\n self[kListener] = null\n\n if (!signal) {\n return\n }\n\n if (signal.aborted) {\n abort(self)\n return\n }\n\n self[kSignal] = signal\n self[kListener] = () => {\n abort(self)\n }\n\n addAbortListener(self[kSignal], self[kListener])\n}\n\nfunction removeSignal (self) {\n if (!self[kSignal]) {\n return\n }\n\n if ('removeEventListener' in self[kSignal]) {\n self[kSignal].removeEventListener('abort', self[kListener])\n } else {\n self[kSignal].removeListener('abort', self[kListener])\n }\n\n self[kSignal] = null\n self[kListener] = null\n}\n\nmodule.exports = {\n addSignal,\n removeSignal\n}\n","'use strict'\n\nconst Readable = require('./readable')\nconst {\n InvalidArgumentError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass RequestHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) {\n throw new InvalidArgumentError('invalid highWaterMark')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_REQUEST')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.res = null\n this.abort = null\n this.body = body\n this.trailers = {}\n this.context = null\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError\n this.highWaterMark = highWaterMark\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n const body = new Readable({ resume, abort, contentType, highWaterMark })\n\n this.callback = null\n this.res = body\n if (callback !== null) {\n if (this.throwOnError && statusCode >= 400) {\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body, contentType, statusCode, statusMessage, headers }\n )\n } else {\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n trailers: this.trailers,\n opaque,\n body,\n context\n })\n }\n }\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n util.parseHeaders(trailers, this.trailers)\n\n res.push(null)\n }\n\n onError (err) {\n const { res, callback, body, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n // TODO: Does this need queueMicrotask?\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (res) {\n this.res = null\n // Ensure all queued handlers are invoked before destroying res.\n queueMicrotask(() => {\n util.destroy(res, err)\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction request (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n request.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new RequestHandler(opts, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = request\nmodule.exports.RequestHandler = RequestHandler\n","'use strict'\n\nconst { finished, PassThrough } = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass StreamHandler extends AsyncResource {\n constructor (opts, factory, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('invalid factory')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_STREAM')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.factory = factory\n this.callback = callback\n this.res = null\n this.abort = null\n this.context = null\n this.trailers = null\n this.body = body\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError || false\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { factory, opaque, context, callback, responseHeaders } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.factory = null\n\n let res\n\n if (this.throwOnError && statusCode >= 400) {\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n res = new PassThrough()\n\n this.callback = null\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body: res, contentType, statusCode, statusMessage, headers }\n )\n } else {\n if (factory === null) {\n return\n }\n\n res = this.runInAsyncScope(factory, null, {\n statusCode,\n headers,\n opaque,\n context\n })\n\n if (\n !res ||\n typeof res.write !== 'function' ||\n typeof res.end !== 'function' ||\n typeof res.on !== 'function'\n ) {\n throw new InvalidReturnValueError('expected Writable')\n }\n\n // TODO: Avoid finished. It registers an unnecessary amount of listeners.\n finished(res, { readable: false }, (err) => {\n const { callback, res, opaque, trailers, abort } = this\n\n this.res = null\n if (err || !res.readable) {\n util.destroy(res, err)\n }\n\n this.callback = null\n this.runInAsyncScope(callback, null, err || null, { opaque, trailers })\n\n if (err) {\n abort()\n }\n })\n }\n\n res.on('drain', resume)\n\n this.res = res\n\n const needDrain = res.writableNeedDrain !== undefined\n ? res.writableNeedDrain\n : res._writableState && res._writableState.needDrain\n\n return needDrain !== true\n }\n\n onData (chunk) {\n const { res } = this\n\n return res ? res.write(chunk) : true\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n if (!res) {\n return\n }\n\n this.trailers = util.parseHeaders(trailers)\n\n res.end()\n }\n\n onError (err) {\n const { res, callback, opaque, body } = this\n\n removeSignal(this)\n\n this.factory = null\n\n if (res) {\n this.res = null\n util.destroy(res, err)\n } else if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction stream (opts, factory, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n stream.call(this, opts, factory, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new StreamHandler(opts, factory, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = stream\n","'use strict'\n\nconst {\n Readable,\n Duplex,\n PassThrough\n} = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nconst kResume = Symbol('resume')\n\nclass PipelineRequest extends Readable {\n constructor () {\n super({ autoDestroy: true })\n\n this[kResume] = null\n }\n\n _read () {\n const { [kResume]: resume } = this\n\n if (resume) {\n this[kResume] = null\n resume()\n }\n }\n\n _destroy (err, callback) {\n this._read()\n\n callback(err)\n }\n}\n\nclass PipelineResponse extends Readable {\n constructor (resume) {\n super({ autoDestroy: true })\n this[kResume] = resume\n }\n\n _read () {\n this[kResume]()\n }\n\n _destroy (err, callback) {\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n callback(err)\n }\n}\n\nclass PipelineHandler extends AsyncResource {\n constructor (opts, handler) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof handler !== 'function') {\n throw new InvalidArgumentError('invalid handler')\n }\n\n const { signal, method, opaque, onInfo, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_PIPELINE')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.handler = handler\n this.abort = null\n this.context = null\n this.onInfo = onInfo || null\n\n this.req = new PipelineRequest().on('error', util.nop)\n\n this.ret = new Duplex({\n readableObjectMode: opts.objectMode,\n autoDestroy: true,\n read: () => {\n const { body } = this\n\n if (body && body.resume) {\n body.resume()\n }\n },\n write: (chunk, encoding, callback) => {\n const { req } = this\n\n if (req.push(chunk, encoding) || req._readableState.destroyed) {\n callback()\n } else {\n req[kResume] = callback\n }\n },\n destroy: (err, callback) => {\n const { body, req, res, ret, abort } = this\n\n if (!err && !ret._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (abort && err) {\n abort()\n }\n\n util.destroy(body, err)\n util.destroy(req, err)\n util.destroy(res, err)\n\n removeSignal(this)\n\n callback(err)\n }\n }).on('prefinish', () => {\n const { req } = this\n\n // Node < 15 does not call _final in same tick.\n req.push(null)\n })\n\n this.res = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n const { ret, res } = this\n\n assert(!res, 'pipeline cannot be retried')\n\n if (ret.destroyed) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { opaque, handler, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.res = new PipelineResponse(resume)\n\n let body\n try {\n this.handler = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n body = this.runInAsyncScope(handler, null, {\n statusCode,\n headers,\n opaque,\n body: this.res,\n context\n })\n } catch (err) {\n this.res.on('error', util.nop)\n throw err\n }\n\n if (!body || typeof body.on !== 'function') {\n throw new InvalidReturnValueError('expected Readable')\n }\n\n body\n .on('data', (chunk) => {\n const { ret, body } = this\n\n if (!ret.push(chunk) && body.pause) {\n body.pause()\n }\n })\n .on('error', (err) => {\n const { ret } = this\n\n util.destroy(ret, err)\n })\n .on('end', () => {\n const { ret } = this\n\n ret.push(null)\n })\n .on('close', () => {\n const { ret } = this\n\n if (!ret._readableState.ended) {\n util.destroy(ret, new RequestAbortedError())\n }\n })\n\n this.body = body\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n res.push(null)\n }\n\n onError (err) {\n const { ret } = this\n this.handler = null\n util.destroy(ret, err)\n }\n}\n\nfunction pipeline (opts, handler) {\n try {\n const pipelineHandler = new PipelineHandler(opts, handler)\n this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler)\n return pipelineHandler.ret\n } catch (err) {\n return new PassThrough().destroy(err)\n }\n}\n\nmodule.exports = pipeline\n","'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nclass UpgradeHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_UPGRADE')\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.abort = null\n this.context = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = null\n }\n\n onHeaders () {\n throw new SocketError('bad upgrade', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n assert.strictEqual(statusCode, 101)\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction upgrade (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n upgrade.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const upgradeHandler = new UpgradeHandler(opts, callback)\n this.dispatch({\n ...opts,\n method: opts.method || 'GET',\n upgrade: opts.protocol || 'Websocket'\n }, upgradeHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = upgrade\n","'use strict'\n\nconst { AsyncResource } = require('async_hooks')\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass ConnectHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_CONNECT')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.callback = callback\n this.abort = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders () {\n throw new SocketError('bad connect', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n removeSignal(this)\n\n this.callback = null\n\n let headers = rawHeaders\n // Indicates is an HTTP2Session\n if (headers != null) {\n headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n }\n\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction connect (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n connect.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const connectHandler = new ConnectHandler(opts, callback)\n this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = connect\n","'use strict'\n\nmodule.exports.request = require('./api-request')\nmodule.exports.stream = require('./api-stream')\nmodule.exports.pipeline = require('./api-pipeline')\nmodule.exports.upgrade = require('./api-upgrade')\nmodule.exports.connect = require('./api-connect')\n","'use strict'\n\nconst { UndiciError } = require('../core/errors')\n\nclass MockNotMatchedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, MockNotMatchedError)\n this.name = 'MockNotMatchedError'\n this.message = message || 'The request does not match any registered mock dispatches'\n this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'\n }\n}\n\nmodule.exports = {\n MockNotMatchedError\n}\n","'use strict'\n\nmodule.exports = {\n kAgent: Symbol('agent'),\n kOptions: Symbol('options'),\n kFactory: Symbol('factory'),\n kDispatches: Symbol('dispatches'),\n kDispatchKey: Symbol('dispatch key'),\n kDefaultHeaders: Symbol('default headers'),\n kDefaultTrailers: Symbol('default trailers'),\n kContentLength: Symbol('content length'),\n kMockAgent: Symbol('mock agent'),\n kMockAgentSet: Symbol('mock agent set'),\n kMockAgentGet: Symbol('mock agent get'),\n kMockDispatch: Symbol('mock dispatch'),\n kClose: Symbol('close'),\n kOriginalClose: Symbol('original agent close'),\n kOrigin: Symbol('origin'),\n kIsMockActive: Symbol('is mock active'),\n kNetConnect: Symbol('net connect'),\n kGetNetConnect: Symbol('get net connect'),\n kConnected: Symbol('connected')\n}\n","'use strict'\n\nconst { MockNotMatchedError } = require('./mock-errors')\nconst {\n kDispatches,\n kMockAgent,\n kOriginalDispatch,\n kOrigin,\n kGetNetConnect\n} = require('./mock-symbols')\nconst { buildURL, nop } = require('../core/util')\nconst { STATUS_CODES } = require('http')\nconst {\n types: {\n isPromise\n }\n} = require('util')\n\nfunction matchValue (match, value) {\n if (typeof match === 'string') {\n return match === value\n }\n if (match instanceof RegExp) {\n return match.test(value)\n }\n if (typeof match === 'function') {\n return match(value) === true\n }\n return false\n}\n\nfunction lowerCaseEntries (headers) {\n return Object.fromEntries(\n Object.entries(headers).map(([headerName, headerValue]) => {\n return [headerName.toLocaleLowerCase(), headerValue]\n })\n )\n}\n\n/**\n * @param {import('../../index').Headers|string[]|Record} headers\n * @param {string} key\n */\nfunction getHeaderByName (headers, key) {\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) {\n return headers[i + 1]\n }\n }\n\n return undefined\n } else if (typeof headers.get === 'function') {\n return headers.get(key)\n } else {\n return lowerCaseEntries(headers)[key.toLocaleLowerCase()]\n }\n}\n\n/** @param {string[]} headers */\nfunction buildHeadersFromArray (headers) { // fetch HeadersList\n const clone = headers.slice()\n const entries = []\n for (let index = 0; index < clone.length; index += 2) {\n entries.push([clone[index], clone[index + 1]])\n }\n return Object.fromEntries(entries)\n}\n\nfunction matchHeaders (mockDispatch, headers) {\n if (typeof mockDispatch.headers === 'function') {\n if (Array.isArray(headers)) { // fetch HeadersList\n headers = buildHeadersFromArray(headers)\n }\n return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {})\n }\n if (typeof mockDispatch.headers === 'undefined') {\n return true\n }\n if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') {\n return false\n }\n\n for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) {\n const headerValue = getHeaderByName(headers, matchHeaderName)\n\n if (!matchValue(matchHeaderValue, headerValue)) {\n return false\n }\n }\n return true\n}\n\nfunction safeUrl (path) {\n if (typeof path !== 'string') {\n return path\n }\n\n const pathSegments = path.split('?')\n\n if (pathSegments.length !== 2) {\n return path\n }\n\n const qp = new URLSearchParams(pathSegments.pop())\n qp.sort()\n return [...pathSegments, qp.toString()].join('?')\n}\n\nfunction matchKey (mockDispatch, { path, method, body, headers }) {\n const pathMatch = matchValue(mockDispatch.path, path)\n const methodMatch = matchValue(mockDispatch.method, method)\n const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true\n const headersMatch = matchHeaders(mockDispatch, headers)\n return pathMatch && methodMatch && bodyMatch && headersMatch\n}\n\nfunction getResponseData (data) {\n if (Buffer.isBuffer(data)) {\n return data\n } else if (typeof data === 'object') {\n return JSON.stringify(data)\n } else {\n return data.toString()\n }\n}\n\nfunction getMockDispatch (mockDispatches, key) {\n const basePath = key.query ? buildURL(key.path, key.query) : key.path\n const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath\n\n // Match path\n let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)\n }\n\n // Match method\n matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`)\n }\n\n // Match body\n matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true)\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`)\n }\n\n // Match headers\n matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`)\n }\n\n return matchedMockDispatches[0]\n}\n\nfunction addMockDispatch (mockDispatches, key, data) {\n const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }\n const replyData = typeof data === 'function' ? { callback: data } : { ...data }\n const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }\n mockDispatches.push(newMockDispatch)\n return newMockDispatch\n}\n\nfunction deleteMockDispatch (mockDispatches, key) {\n const index = mockDispatches.findIndex(dispatch => {\n if (!dispatch.consumed) {\n return false\n }\n return matchKey(dispatch, key)\n })\n if (index !== -1) {\n mockDispatches.splice(index, 1)\n }\n}\n\nfunction buildKey (opts) {\n const { path, method, body, headers, query } = opts\n return {\n path,\n method,\n body,\n headers,\n query\n }\n}\n\nfunction generateKeyValues (data) {\n return Object.entries(data).reduce((keyValuePairs, [key, value]) => [\n ...keyValuePairs,\n Buffer.from(`${key}`),\n Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`)\n ], [])\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\n * @param {number} statusCode\n */\nfunction getStatusText (statusCode) {\n return STATUS_CODES[statusCode] || 'unknown'\n}\n\nasync function getResponse (body) {\n const buffers = []\n for await (const data of body) {\n buffers.push(data)\n }\n return Buffer.concat(buffers).toString('utf8')\n}\n\n/**\n * Mock dispatch function used to simulate undici dispatches\n */\nfunction mockDispatch (opts, handler) {\n // Get mock dispatch from built key\n const key = buildKey(opts)\n const mockDispatch = getMockDispatch(this[kDispatches], key)\n\n mockDispatch.timesInvoked++\n\n // Here's where we resolve a callback if a callback is present for the dispatch data.\n if (mockDispatch.data.callback) {\n mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) }\n }\n\n // Parse mockDispatch data\n const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch\n const { timesInvoked, times } = mockDispatch\n\n // If it's used up and not persistent, mark as consumed\n mockDispatch.consumed = !persist && timesInvoked >= times\n mockDispatch.pending = timesInvoked < times\n\n // If specified, trigger dispatch error\n if (error !== null) {\n deleteMockDispatch(this[kDispatches], key)\n handler.onError(error)\n return true\n }\n\n // Handle the request with a delay if necessary\n if (typeof delay === 'number' && delay > 0) {\n setTimeout(() => {\n handleReply(this[kDispatches])\n }, delay)\n } else {\n handleReply(this[kDispatches])\n }\n\n function handleReply (mockDispatches, _data = data) {\n // fetch's HeadersList is a 1D string array\n const optsHeaders = Array.isArray(opts.headers)\n ? buildHeadersFromArray(opts.headers)\n : opts.headers\n const body = typeof _data === 'function'\n ? _data({ ...opts, headers: optsHeaders })\n : _data\n\n // util.types.isPromise is likely needed for jest.\n if (isPromise(body)) {\n // If handleReply is asynchronous, throwing an error\n // in the callback will reject the promise, rather than\n // synchronously throw the error, which breaks some tests.\n // Rather, we wait for the callback to resolve if it is a\n // promise, and then re-run handleReply with the new body.\n body.then((newData) => handleReply(mockDispatches, newData))\n return\n }\n\n const responseData = getResponseData(body)\n const responseHeaders = generateKeyValues(headers)\n const responseTrailers = generateKeyValues(trailers)\n\n handler.abort = nop\n handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode))\n handler.onData(Buffer.from(responseData))\n handler.onComplete(responseTrailers)\n deleteMockDispatch(mockDispatches, key)\n }\n\n function resume () {}\n\n return true\n}\n\nfunction buildMockDispatch () {\n const agent = this[kMockAgent]\n const origin = this[kOrigin]\n const originalDispatch = this[kOriginalDispatch]\n\n return function dispatch (opts, handler) {\n if (agent.isMockActive) {\n try {\n mockDispatch.call(this, opts, handler)\n } catch (error) {\n if (error instanceof MockNotMatchedError) {\n const netConnect = agent[kGetNetConnect]()\n if (netConnect === false) {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)\n }\n if (checkNetConnect(netConnect, origin)) {\n originalDispatch.call(this, opts, handler)\n } else {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)\n }\n } else {\n throw error\n }\n }\n } else {\n originalDispatch.call(this, opts, handler)\n }\n }\n}\n\nfunction checkNetConnect (netConnect, origin) {\n const url = new URL(origin)\n if (netConnect === true) {\n return true\n } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) {\n return true\n }\n return false\n}\n\nfunction buildMockOptions (opts) {\n if (opts) {\n const { agent, ...mockOptions } = opts\n return mockOptions\n }\n}\n\nmodule.exports = {\n getResponseData,\n getMockDispatch,\n addMockDispatch,\n deleteMockDispatch,\n buildKey,\n generateKeyValues,\n matchValue,\n getResponse,\n getStatusText,\n mockDispatch,\n buildMockDispatch,\n checkNetConnect,\n buildMockOptions,\n getHeaderByName\n}\n","'use strict'\n\nconst { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kDispatchKey,\n kDefaultHeaders,\n kDefaultTrailers,\n kContentLength,\n kMockDispatch\n} = require('./mock-symbols')\nconst { InvalidArgumentError } = require('../core/errors')\nconst { buildURL } = require('../core/util')\n\n/**\n * Defines the scope API for an interceptor reply\n */\nclass MockScope {\n constructor (mockDispatch) {\n this[kMockDispatch] = mockDispatch\n }\n\n /**\n * Delay a reply by a set amount in ms.\n */\n delay (waitInMs) {\n if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {\n throw new InvalidArgumentError('waitInMs must be a valid integer > 0')\n }\n\n this[kMockDispatch].delay = waitInMs\n return this\n }\n\n /**\n * For a defined reply, never mark as consumed.\n */\n persist () {\n this[kMockDispatch].persist = true\n return this\n }\n\n /**\n * Allow one to define a reply for a set amount of matching requests.\n */\n times (repeatTimes) {\n if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {\n throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')\n }\n\n this[kMockDispatch].times = repeatTimes\n return this\n }\n}\n\n/**\n * Defines an interceptor for a Mock\n */\nclass MockInterceptor {\n constructor (opts, mockDispatches) {\n if (typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object')\n }\n if (typeof opts.path === 'undefined') {\n throw new InvalidArgumentError('opts.path must be defined')\n }\n if (typeof opts.method === 'undefined') {\n opts.method = 'GET'\n }\n // See https://github.com/nodejs/undici/issues/1245\n // As per RFC 3986, clients are not supposed to send URI\n // fragments to servers when they retrieve a document,\n if (typeof opts.path === 'string') {\n if (opts.query) {\n opts.path = buildURL(opts.path, opts.query)\n } else {\n // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811\n const parsedURL = new URL(opts.path, 'data://')\n opts.path = parsedURL.pathname + parsedURL.search\n }\n }\n if (typeof opts.method === 'string') {\n opts.method = opts.method.toUpperCase()\n }\n\n this[kDispatchKey] = buildKey(opts)\n this[kDispatches] = mockDispatches\n this[kDefaultHeaders] = {}\n this[kDefaultTrailers] = {}\n this[kContentLength] = false\n }\n\n createMockScopeDispatchData (statusCode, data, responseOptions = {}) {\n const responseData = getResponseData(data)\n const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}\n const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }\n const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }\n\n return { statusCode, data, headers, trailers }\n }\n\n validateReplyParameters (statusCode, data, responseOptions) {\n if (typeof statusCode === 'undefined') {\n throw new InvalidArgumentError('statusCode must be defined')\n }\n if (typeof data === 'undefined') {\n throw new InvalidArgumentError('data must be defined')\n }\n if (typeof responseOptions !== 'object') {\n throw new InvalidArgumentError('responseOptions must be an object')\n }\n }\n\n /**\n * Mock an undici request with a defined reply.\n */\n reply (replyData) {\n // Values of reply aren't available right now as they\n // can only be available when the reply callback is invoked.\n if (typeof replyData === 'function') {\n // We'll first wrap the provided callback in another function,\n // this function will properly resolve the data from the callback\n // when invoked.\n const wrappedDefaultsCallback = (opts) => {\n // Our reply options callback contains the parameter for statusCode, data and options.\n const resolvedData = replyData(opts)\n\n // Check if it is in the right format\n if (typeof resolvedData !== 'object') {\n throw new InvalidArgumentError('reply options callback must return an object')\n }\n\n const { statusCode, data = '', responseOptions = {} } = resolvedData\n this.validateReplyParameters(statusCode, data, responseOptions)\n // Since the values can be obtained immediately we return them\n // from this higher order function that will be resolved later.\n return {\n ...this.createMockScopeDispatchData(statusCode, data, responseOptions)\n }\n }\n\n // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback)\n return new MockScope(newMockDispatch)\n }\n\n // We can have either one or three parameters, if we get here,\n // we should have 1-3 parameters. So we spread the arguments of\n // this function to obtain the parameters, since replyData will always\n // just be the statusCode.\n const [statusCode, data = '', responseOptions = {}] = [...arguments]\n this.validateReplyParameters(statusCode, data, responseOptions)\n\n // Send in-already provided data like usual\n const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions)\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData)\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Mock an undici request with a defined error.\n */\n replyWithError (error) {\n if (typeof error === 'undefined') {\n throw new InvalidArgumentError('error must be defined')\n }\n\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error })\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Set default reply headers on the interceptor for subsequent replies\n */\n defaultReplyHeaders (headers) {\n if (typeof headers === 'undefined') {\n throw new InvalidArgumentError('headers must be defined')\n }\n\n this[kDefaultHeaders] = headers\n return this\n }\n\n /**\n * Set default reply trailers on the interceptor for subsequent replies\n */\n defaultReplyTrailers (trailers) {\n if (typeof trailers === 'undefined') {\n throw new InvalidArgumentError('trailers must be defined')\n }\n\n this[kDefaultTrailers] = trailers\n return this\n }\n\n /**\n * Set reply content length header for replies on the interceptor\n */\n replyContentLength () {\n this[kContentLength] = true\n return this\n }\n}\n\nmodule.exports.MockInterceptor = MockInterceptor\nmodule.exports.MockScope = MockScope\n","'use strict'\n\nconst { promisify } = require('util')\nconst Client = require('../client')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockClient provides an API that extends the Client to influence the mockDispatches.\n */\nclass MockClient extends Client {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockClient\n","'use strict'\n\nconst { promisify } = require('util')\nconst Pool = require('../pool')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockPool provides an API that extends the Pool to influence the mockDispatches.\n */\nclass MockPool extends Pool {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockPool\n","'use strict'\n\nconst singulars = {\n pronoun: 'it',\n is: 'is',\n was: 'was',\n this: 'this'\n}\n\nconst plurals = {\n pronoun: 'they',\n is: 'are',\n was: 'were',\n this: 'these'\n}\n\nmodule.exports = class Pluralizer {\n constructor (singular, plural) {\n this.singular = singular\n this.plural = plural\n }\n\n pluralize (count) {\n const one = count === 1\n const keys = one ? singulars : plurals\n const noun = one ? this.singular : this.plural\n return { ...keys, count, noun }\n }\n}\n","'use strict'\n\nconst { Transform } = require('stream')\nconst { Console } = require('console')\n\n/**\n * Gets the output of `console.table(…)` as a string.\n */\nmodule.exports = class PendingInterceptorsFormatter {\n constructor ({ disableColors } = {}) {\n this.transform = new Transform({\n transform (chunk, _enc, cb) {\n cb(null, chunk)\n }\n })\n\n this.logger = new Console({\n stdout: this.transform,\n inspectOptions: {\n colors: !disableColors && !process.env.CI\n }\n })\n }\n\n format (pendingInterceptors) {\n const withPrettyHeaders = pendingInterceptors.map(\n ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({\n Method: method,\n Origin: origin,\n Path: path,\n 'Status code': statusCode,\n Persistent: persist ? '✅' : '❌',\n Invocations: timesInvoked,\n Remaining: persist ? Infinity : times - timesInvoked\n }))\n\n this.logger.table(withPrettyHeaders)\n return this.transform.read().toString()\n }\n}\n","'use strict'\n\nconst { kClients } = require('../core/symbols')\nconst Agent = require('../agent')\nconst {\n kAgent,\n kMockAgentSet,\n kMockAgentGet,\n kDispatches,\n kIsMockActive,\n kNetConnect,\n kGetNetConnect,\n kOptions,\n kFactory\n} = require('./mock-symbols')\nconst MockClient = require('./mock-client')\nconst MockPool = require('./mock-pool')\nconst { matchValue, buildMockOptions } = require('./mock-utils')\nconst { InvalidArgumentError, UndiciError } = require('../core/errors')\nconst Dispatcher = require('../dispatcher')\nconst Pluralizer = require('./pluralizer')\nconst PendingInterceptorsFormatter = require('./pending-interceptors-formatter')\n\nclass FakeWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value\n }\n}\n\nclass MockAgent extends Dispatcher {\n constructor (opts) {\n super(opts)\n\n this[kNetConnect] = true\n this[kIsMockActive] = true\n\n // Instantiate Agent and encapsulate\n if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n const agent = opts && opts.agent ? opts.agent : new Agent(opts)\n this[kAgent] = agent\n\n this[kClients] = agent[kClients]\n this[kOptions] = buildMockOptions(opts)\n }\n\n get (origin) {\n let dispatcher = this[kMockAgentGet](origin)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n }\n return dispatcher\n }\n\n dispatch (opts, handler) {\n // Call MockAgent.get to perform additional setup before dispatching as normal\n this.get(opts.origin)\n return this[kAgent].dispatch(opts, handler)\n }\n\n async close () {\n await this[kAgent].close()\n this[kClients].clear()\n }\n\n deactivate () {\n this[kIsMockActive] = false\n }\n\n activate () {\n this[kIsMockActive] = true\n }\n\n enableNetConnect (matcher) {\n if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) {\n if (Array.isArray(this[kNetConnect])) {\n this[kNetConnect].push(matcher)\n } else {\n this[kNetConnect] = [matcher]\n }\n } else if (typeof matcher === 'undefined') {\n this[kNetConnect] = true\n } else {\n throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.')\n }\n }\n\n disableNetConnect () {\n this[kNetConnect] = false\n }\n\n // This is required to bypass issues caused by using global symbols - see:\n // https://github.com/nodejs/undici/issues/1447\n get isMockActive () {\n return this[kIsMockActive]\n }\n\n [kMockAgentSet] (origin, dispatcher) {\n this[kClients].set(origin, new FakeWeakRef(dispatcher))\n }\n\n [kFactory] (origin) {\n const mockOptions = Object.assign({ agent: this }, this[kOptions])\n return this[kOptions] && this[kOptions].connections === 1\n ? new MockClient(origin, mockOptions)\n : new MockPool(origin, mockOptions)\n }\n\n [kMockAgentGet] (origin) {\n // First check if we can immediately find it\n const ref = this[kClients].get(origin)\n if (ref) {\n return ref.deref()\n }\n\n // If the origin is not a string create a dummy parent pool and return to user\n if (typeof origin !== 'string') {\n const dispatcher = this[kFactory]('http://localhost:9999')\n this[kMockAgentSet](origin, dispatcher)\n return dispatcher\n }\n\n // If we match, create a pool and assign the same dispatches\n for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) {\n const nonExplicitDispatcher = nonExplicitRef.deref()\n if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) {\n const dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]\n return dispatcher\n }\n }\n }\n\n [kGetNetConnect] () {\n return this[kNetConnect]\n }\n\n pendingInterceptors () {\n const mockAgentClients = this[kClients]\n\n return Array.from(mockAgentClients.entries())\n .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin })))\n .filter(({ pending }) => pending)\n }\n\n assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {\n const pending = this.pendingInterceptors()\n\n if (pending.length === 0) {\n return\n }\n\n const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length)\n\n throw new UndiciError(`\n${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending:\n\n${pendingInterceptorsFormatter.format(pending)}\n`.trim())\n }\n}\n\nmodule.exports = MockAgent\n","'use strict'\n\nconst { kProxy, kClose, kDestroy, kInterceptors } = require('./core/symbols')\nconst { URL } = require('url')\nconst Agent = require('./agent')\nconst Pool = require('./pool')\nconst DispatcherBase = require('./dispatcher-base')\nconst { InvalidArgumentError, RequestAbortedError } = require('./core/errors')\nconst buildConnector = require('./core/connect')\n\nconst kAgent = Symbol('proxy agent')\nconst kClient = Symbol('proxy client')\nconst kProxyHeaders = Symbol('proxy headers')\nconst kRequestTls = Symbol('request tls settings')\nconst kProxyTls = Symbol('proxy tls settings')\nconst kConnectEndpoint = Symbol('connect endpoint function')\n\nfunction defaultProtocolPort (protocol) {\n return protocol === 'https:' ? 443 : 80\n}\n\nfunction buildProxyOptions (opts) {\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n return {\n uri: opts.uri,\n protocol: opts.protocol || 'https'\n }\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass ProxyAgent extends DispatcherBase {\n constructor (opts) {\n super(opts)\n this[kProxy] = buildProxyOptions(opts)\n this[kAgent] = new Agent(opts)\n this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent)\n ? opts.interceptors.ProxyAgent\n : []\n\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n const { clientFactory = defaultFactory } = opts\n\n if (typeof clientFactory !== 'function') {\n throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.')\n }\n\n this[kRequestTls] = opts.requestTls\n this[kProxyTls] = opts.proxyTls\n this[kProxyHeaders] = opts.headers || {}\n\n const resolvedUrl = new URL(opts.uri)\n const { origin, port, host, username, password } = resolvedUrl\n\n if (opts.auth && opts.token) {\n throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token')\n } else if (opts.auth) {\n /* @deprecated in favour of opts.token */\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`\n } else if (opts.token) {\n this[kProxyHeaders]['proxy-authorization'] = opts.token\n } else if (username && password) {\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString('base64')}`\n }\n\n const connect = buildConnector({ ...opts.proxyTls })\n this[kConnectEndpoint] = buildConnector({ ...opts.requestTls })\n this[kClient] = clientFactory(resolvedUrl, { connect })\n this[kAgent] = new Agent({\n ...opts,\n connect: async (opts, callback) => {\n let requestedHost = opts.host\n if (!opts.port) {\n requestedHost += `:${defaultProtocolPort(opts.protocol)}`\n }\n try {\n const { socket, statusCode } = await this[kClient].connect({\n origin,\n port,\n path: requestedHost,\n signal: opts.signal,\n headers: {\n ...this[kProxyHeaders],\n host\n }\n })\n if (statusCode !== 200) {\n socket.on('error', () => {}).destroy()\n callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`))\n }\n if (opts.protocol !== 'https:') {\n callback(null, socket)\n return\n }\n let servername\n if (this[kRequestTls]) {\n servername = this[kRequestTls].servername\n } else {\n servername = opts.servername\n }\n this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback)\n } catch (err) {\n callback(err)\n }\n }\n })\n }\n\n dispatch (opts, handler) {\n const { host } = new URL(opts.origin)\n const headers = buildHeaders(opts.headers)\n throwIfProxyAuthIsSent(headers)\n return this[kAgent].dispatch(\n {\n ...opts,\n headers: {\n ...headers,\n host\n }\n },\n handler\n )\n }\n\n async [kClose] () {\n await this[kAgent].close()\n await this[kClient].close()\n }\n\n async [kDestroy] () {\n await this[kAgent].destroy()\n await this[kClient].destroy()\n }\n}\n\n/**\n * @param {string[] | Record} headers\n * @returns {Record}\n */\nfunction buildHeaders (headers) {\n // When using undici.fetch, the headers list is stored\n // as an array.\n if (Array.isArray(headers)) {\n /** @type {Record} */\n const headersPair = {}\n\n for (let i = 0; i < headers.length; i += 2) {\n headersPair[headers[i]] = headers[i + 1]\n }\n\n return headersPair\n }\n\n return headers\n}\n\n/**\n * @param {Record} headers\n *\n * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers\n * Nevertheless, it was changed and to avoid a security vulnerability by end users\n * this check was created.\n * It should be removed in the next major version for performance reasons\n */\nfunction throwIfProxyAuthIsSent (headers) {\n const existProxyAuth = headers && Object.keys(headers)\n .find((key) => key.toLowerCase() === 'proxy-authorization')\n if (existProxyAuth) {\n throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor')\n }\n}\n\nmodule.exports = ProxyAgent\n","const assert = require('assert')\n\nconst { kRetryHandlerDefaultRetry } = require('../core/symbols')\nconst { RequestRetryError } = require('../core/errors')\nconst { isDisturbed, parseHeaders, parseRangeHeader } = require('../core/util')\n\nfunction calculateRetryAfterHeader (retryAfter) {\n const current = Date.now()\n const diff = new Date(retryAfter).getTime() - current\n\n return diff\n}\n\nclass RetryHandler {\n constructor (opts, handlers) {\n const { retryOptions, ...dispatchOpts } = opts\n const {\n // Retry scoped\n retry: retryFn,\n maxRetries,\n maxTimeout,\n minTimeout,\n timeoutFactor,\n // Response scoped\n methods,\n errorCodes,\n retryAfter,\n statusCodes\n } = retryOptions ?? {}\n\n this.dispatch = handlers.dispatch\n this.handler = handlers.handler\n this.opts = dispatchOpts\n this.abort = null\n this.aborted = false\n this.retryOpts = {\n retry: retryFn ?? RetryHandler[kRetryHandlerDefaultRetry],\n retryAfter: retryAfter ?? true,\n maxTimeout: maxTimeout ?? 30 * 1000, // 30s,\n timeout: minTimeout ?? 500, // .5s\n timeoutFactor: timeoutFactor ?? 2,\n maxRetries: maxRetries ?? 5,\n // What errors we should retry\n methods: methods ?? ['GET', 'HEAD', 'OPTIONS', 'PUT', 'DELETE', 'TRACE'],\n // Indicates which errors to retry\n statusCodes: statusCodes ?? [500, 502, 503, 504, 429],\n // List of errors to retry\n errorCodes: errorCodes ?? [\n 'ECONNRESET',\n 'ECONNREFUSED',\n 'ENOTFOUND',\n 'ENETDOWN',\n 'ENETUNREACH',\n 'EHOSTDOWN',\n 'EHOSTUNREACH',\n 'EPIPE'\n ]\n }\n\n this.retryCount = 0\n this.start = 0\n this.end = null\n this.etag = null\n this.resume = null\n\n // Handle possible onConnect duplication\n this.handler.onConnect(reason => {\n this.aborted = true\n if (this.abort) {\n this.abort(reason)\n } else {\n this.reason = reason\n }\n })\n }\n\n onRequestSent () {\n if (this.handler.onRequestSent) {\n this.handler.onRequestSent()\n }\n }\n\n onUpgrade (statusCode, headers, socket) {\n if (this.handler.onUpgrade) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n }\n\n onConnect (abort) {\n if (this.aborted) {\n abort(this.reason)\n } else {\n this.abort = abort\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) return this.handler.onBodySent(chunk)\n }\n\n static [kRetryHandlerDefaultRetry] (err, { state, opts }, cb) {\n const { statusCode, code, headers } = err\n const { method, retryOptions } = opts\n const {\n maxRetries,\n timeout,\n maxTimeout,\n timeoutFactor,\n statusCodes,\n errorCodes,\n methods\n } = retryOptions\n let { counter, currentTimeout } = state\n\n currentTimeout =\n currentTimeout != null && currentTimeout > 0 ? currentTimeout : timeout\n\n // Any code that is not a Undici's originated and allowed to retry\n if (\n code &&\n code !== 'UND_ERR_REQ_RETRY' &&\n code !== 'UND_ERR_SOCKET' &&\n !errorCodes.includes(code)\n ) {\n cb(err)\n return\n }\n\n // If a set of method are provided and the current method is not in the list\n if (Array.isArray(methods) && !methods.includes(method)) {\n cb(err)\n return\n }\n\n // If a set of status code are provided and the current status code is not in the list\n if (\n statusCode != null &&\n Array.isArray(statusCodes) &&\n !statusCodes.includes(statusCode)\n ) {\n cb(err)\n return\n }\n\n // If we reached the max number of retries\n if (counter > maxRetries) {\n cb(err)\n return\n }\n\n let retryAfterHeader = headers != null && headers['retry-after']\n if (retryAfterHeader) {\n retryAfterHeader = Number(retryAfterHeader)\n retryAfterHeader = isNaN(retryAfterHeader)\n ? calculateRetryAfterHeader(retryAfterHeader)\n : retryAfterHeader * 1e3 // Retry-After is in seconds\n }\n\n const retryTimeout =\n retryAfterHeader > 0\n ? Math.min(retryAfterHeader, maxTimeout)\n : Math.min(currentTimeout * timeoutFactor ** counter, maxTimeout)\n\n state.currentTimeout = retryTimeout\n\n setTimeout(() => cb(null), retryTimeout)\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const headers = parseHeaders(rawHeaders)\n\n this.retryCount += 1\n\n if (statusCode >= 300) {\n this.abort(\n new RequestRetryError('Request failed', statusCode, {\n headers,\n count: this.retryCount\n })\n )\n return false\n }\n\n // Checkpoint for resume from where we left it\n if (this.resume != null) {\n this.resume = null\n\n if (statusCode !== 206) {\n return true\n }\n\n const contentRange = parseRangeHeader(headers['content-range'])\n // If no content range\n if (!contentRange) {\n this.abort(\n new RequestRetryError('Content-Range mismatch', statusCode, {\n headers,\n count: this.retryCount\n })\n )\n return false\n }\n\n // Let's start with a weak etag check\n if (this.etag != null && this.etag !== headers.etag) {\n this.abort(\n new RequestRetryError('ETag mismatch', statusCode, {\n headers,\n count: this.retryCount\n })\n )\n return false\n }\n\n const { start, size, end = size } = contentRange\n\n assert(this.start === start, 'content-range mismatch')\n assert(this.end == null || this.end === end, 'content-range mismatch')\n\n this.resume = resume\n return true\n }\n\n if (this.end == null) {\n if (statusCode === 206) {\n // First time we receive 206\n const range = parseRangeHeader(headers['content-range'])\n\n if (range == null) {\n return this.handler.onHeaders(\n statusCode,\n rawHeaders,\n resume,\n statusMessage\n )\n }\n\n const { start, size, end = size } = range\n\n assert(\n start != null && Number.isFinite(start) && this.start !== start,\n 'content-range mismatch'\n )\n assert(Number.isFinite(start))\n assert(\n end != null && Number.isFinite(end) && this.end !== end,\n 'invalid content-length'\n )\n\n this.start = start\n this.end = end\n }\n\n // We make our best to checkpoint the body for further range headers\n if (this.end == null) {\n const contentLength = headers['content-length']\n this.end = contentLength != null ? Number(contentLength) : null\n }\n\n assert(Number.isFinite(this.start))\n assert(\n this.end == null || Number.isFinite(this.end),\n 'invalid content-length'\n )\n\n this.resume = resume\n this.etag = headers.etag != null ? headers.etag : null\n\n return this.handler.onHeaders(\n statusCode,\n rawHeaders,\n resume,\n statusMessage\n )\n }\n\n const err = new RequestRetryError('Request failed', statusCode, {\n headers,\n count: this.retryCount\n })\n\n this.abort(err)\n\n return false\n }\n\n onData (chunk) {\n this.start += chunk.length\n\n return this.handler.onData(chunk)\n }\n\n onComplete (rawTrailers) {\n this.retryCount = 0\n return this.handler.onComplete(rawTrailers)\n }\n\n onError (err) {\n if (this.aborted || isDisturbed(this.opts.body)) {\n return this.handler.onError(err)\n }\n\n this.retryOpts.retry(\n err,\n {\n state: { counter: this.retryCount++, currentTimeout: this.retryAfter },\n opts: { retryOptions: this.retryOpts, ...this.opts }\n },\n onRetry.bind(this)\n )\n\n function onRetry (err) {\n if (err != null || this.aborted || isDisturbed(this.opts.body)) {\n return this.handler.onError(err)\n }\n\n if (this.start !== 0) {\n this.opts = {\n ...this.opts,\n headers: {\n ...this.opts.headers,\n range: `bytes=${this.start}-${this.end ?? ''}`\n }\n }\n }\n\n try {\n this.dispatch(this.opts, this)\n } catch (err) {\n this.handler.onError(err)\n }\n }\n }\n}\n\nmodule.exports = RetryHandler\n","'use strict'\n\n// We include a version number for the Dispatcher API. In case of breaking changes,\n// this version number must be increased to avoid conflicts.\nconst globalDispatcher = Symbol.for('undici.globalDispatcher.1')\nconst { InvalidArgumentError } = require('./core/errors')\nconst Agent = require('./agent')\n\nif (getGlobalDispatcher() === undefined) {\n setGlobalDispatcher(new Agent())\n}\n\nfunction setGlobalDispatcher (agent) {\n if (!agent || typeof agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument agent must implement Agent')\n }\n Object.defineProperty(globalThis, globalDispatcher, {\n value: agent,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nfunction getGlobalDispatcher () {\n return globalThis[globalDispatcher]\n}\n\nmodule.exports = {\n setGlobalDispatcher,\n getGlobalDispatcher\n}\n","'use strict'\n\nmodule.exports = class DecoratorHandler {\n constructor (handler) {\n this.handler = handler\n }\n\n onConnect (...args) {\n return this.handler.onConnect(...args)\n }\n\n onError (...args) {\n return this.handler.onError(...args)\n }\n\n onUpgrade (...args) {\n return this.handler.onUpgrade(...args)\n }\n\n onHeaders (...args) {\n return this.handler.onHeaders(...args)\n }\n\n onData (...args) {\n return this.handler.onData(...args)\n }\n\n onComplete (...args) {\n return this.handler.onComplete(...args)\n }\n\n onBodySent (...args) {\n return this.handler.onBodySent(...args)\n }\n}\n","// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst { kHeadersList, kConstruct } = require('../core/symbols')\nconst { kGuard } = require('./symbols')\nconst { kEnumerableProperty } = require('../core/util')\nconst {\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue\n} = require('./util')\nconst util = require('util')\nconst { webidl } = require('./webidl')\nconst assert = require('assert')\n\nconst kHeadersMap = Symbol('headers map')\nconst kHeadersSortedMap = Symbol('headers map sorted')\n\n/**\n * @param {number} code\n */\nfunction isHTTPWhiteSpaceCharCode (code) {\n return code === 0x00a || code === 0x00d || code === 0x009 || code === 0x020\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize\n * @param {string} potentialValue\n */\nfunction headerValueNormalize (potentialValue) {\n // To normalize a byte sequence potentialValue, remove\n // any leading and trailing HTTP whitespace bytes from\n // potentialValue.\n let i = 0; let j = potentialValue.length\n\n while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j - 1))) --j\n while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i))) ++i\n\n return i === 0 && j === potentialValue.length ? potentialValue : potentialValue.substring(i, j)\n}\n\nfunction fill (headers, object) {\n // To fill a Headers object headers with a given object object, run these steps:\n\n // 1. If object is a sequence, then for each header in object:\n // Note: webidl conversion to array has already been done.\n if (Array.isArray(object)) {\n for (let i = 0; i < object.length; ++i) {\n const header = object[i]\n // 1. If header does not contain exactly two items, then throw a TypeError.\n if (header.length !== 2) {\n throw webidl.errors.exception({\n header: 'Headers constructor',\n message: `expected name/value pair to be length 2, found ${header.length}.`\n })\n }\n\n // 2. Append (header’s first item, header’s second item) to headers.\n appendHeader(headers, header[0], header[1])\n }\n } else if (typeof object === 'object' && object !== null) {\n // Note: null should throw\n\n // 2. Otherwise, object is a record, then for each key → value in object,\n // append (key, value) to headers\n const keys = Object.keys(object)\n for (let i = 0; i < keys.length; ++i) {\n appendHeader(headers, keys[i], object[keys[i]])\n }\n } else {\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence>', 'record']\n })\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-headers-append\n */\nfunction appendHeader (headers, name, value) {\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value,\n type: 'header value'\n })\n }\n\n // 3. If headers’s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if headers’s guard is \"request\" and name is a\n // forbidden header name, return.\n // Note: undici does not implement forbidden header names\n if (headers[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (headers[kGuard] === 'request-no-cors') {\n // 5. Otherwise, if headers’s guard is \"request-no-cors\":\n // TODO\n }\n\n // 6. Otherwise, if headers’s guard is \"response\" and name is a\n // forbidden response-header name, return.\n\n // 7. Append (name, value) to headers’s header list.\n return headers[kHeadersList].append(name, value)\n\n // 8. If headers’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from headers\n}\n\nclass HeadersList {\n /** @type {[string, string][]|null} */\n cookies = null\n\n constructor (init) {\n if (init instanceof HeadersList) {\n this[kHeadersMap] = new Map(init[kHeadersMap])\n this[kHeadersSortedMap] = init[kHeadersSortedMap]\n this.cookies = init.cookies === null ? null : [...init.cookies]\n } else {\n this[kHeadersMap] = new Map(init)\n this[kHeadersSortedMap] = null\n }\n }\n\n // https://fetch.spec.whatwg.org/#header-list-contains\n contains (name) {\n // A header list list contains a header name name if list\n // contains a header whose name is a byte-case-insensitive\n // match for name.\n name = name.toLowerCase()\n\n return this[kHeadersMap].has(name)\n }\n\n clear () {\n this[kHeadersMap].clear()\n this[kHeadersSortedMap] = null\n this.cookies = null\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-append\n append (name, value) {\n this[kHeadersSortedMap] = null\n\n // 1. If list contains name, then set name to the first such\n // header’s name.\n const lowercaseName = name.toLowerCase()\n const exists = this[kHeadersMap].get(lowercaseName)\n\n // 2. Append (name, value) to list.\n if (exists) {\n const delimiter = lowercaseName === 'cookie' ? '; ' : ', '\n this[kHeadersMap].set(lowercaseName, {\n name: exists.name,\n value: `${exists.value}${delimiter}${value}`\n })\n } else {\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n if (lowercaseName === 'set-cookie') {\n this.cookies ??= []\n this.cookies.push(value)\n }\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-set\n set (name, value) {\n this[kHeadersSortedMap] = null\n const lowercaseName = name.toLowerCase()\n\n if (lowercaseName === 'set-cookie') {\n this.cookies = [value]\n }\n\n // 1. If list contains name, then set the value of\n // the first such header to value and remove the\n // others.\n // 2. Otherwise, append header (name, value) to list.\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-delete\n delete (name) {\n this[kHeadersSortedMap] = null\n\n name = name.toLowerCase()\n\n if (name === 'set-cookie') {\n this.cookies = null\n }\n\n this[kHeadersMap].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-get\n get (name) {\n const value = this[kHeadersMap].get(name.toLowerCase())\n\n // 1. If list does not contain name, then return null.\n // 2. Return the values of all headers in list whose name\n // is a byte-case-insensitive match for name,\n // separated from each other by 0x2C 0x20, in order.\n return value === undefined ? null : value.value\n }\n\n * [Symbol.iterator] () {\n // use the lowercased name\n for (const [name, { value }] of this[kHeadersMap]) {\n yield [name, value]\n }\n }\n\n get entries () {\n const headers = {}\n\n if (this[kHeadersMap].size) {\n for (const { name, value } of this[kHeadersMap].values()) {\n headers[name] = value\n }\n }\n\n return headers\n }\n}\n\n// https://fetch.spec.whatwg.org/#headers-class\nclass Headers {\n constructor (init = undefined) {\n if (init === kConstruct) {\n return\n }\n this[kHeadersList] = new HeadersList()\n\n // The new Headers(init) constructor steps are:\n\n // 1. Set this’s guard to \"none\".\n this[kGuard] = 'none'\n\n // 2. If init is given, then fill this with init.\n if (init !== undefined) {\n init = webidl.converters.HeadersInit(init)\n fill(this, init)\n }\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-append\n append (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n return appendHeader(this, name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-delete\n delete (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.delete',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. If this’s guard is \"immutable\", then throw a TypeError.\n // 3. Otherwise, if this’s guard is \"request\" and name is a\n // forbidden header name, return.\n // 4. Otherwise, if this’s guard is \"request-no-cors\", name\n // is not a no-CORS-safelisted request-header name, and\n // name is not a privileged no-CORS request-header name,\n // return.\n // 5. Otherwise, if this’s guard is \"response\" and name is\n // a forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 6. If this’s header list does not contain name, then\n // return.\n if (!this[kHeadersList].contains(name)) {\n return\n }\n\n // 7. Delete name from this’s header list.\n // 8. If this’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this.\n this[kHeadersList].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-get\n get (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.get',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return the result of getting name from this’s header\n // list.\n return this[kHeadersList].get(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-has\n has (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.has',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return true if this’s header list contains name;\n // otherwise false.\n return this[kHeadersList].contains(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-set\n set (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value,\n type: 'header value'\n })\n }\n\n // 3. If this’s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if this’s guard is \"request\" and name is a\n // forbidden header name, return.\n // 5. Otherwise, if this’s guard is \"request-no-cors\" and\n // name/value is not a no-CORS-safelisted request-header,\n // return.\n // 6. Otherwise, if this’s guard is \"response\" and name is a\n // forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 7. Set (name, value) in this’s header list.\n // 8. If this’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this\n this[kHeadersList].set(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie\n getSetCookie () {\n webidl.brandCheck(this, Headers)\n\n // 1. If this’s header list does not contain `Set-Cookie`, then return « ».\n // 2. Return the values of all headers in this’s header list whose name is\n // a byte-case-insensitive match for `Set-Cookie`, in order.\n\n const list = this[kHeadersList].cookies\n\n if (list) {\n return [...list]\n }\n\n return []\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n get [kHeadersSortedMap] () {\n if (this[kHeadersList][kHeadersSortedMap]) {\n return this[kHeadersList][kHeadersSortedMap]\n }\n\n // 1. Let headers be an empty list of headers with the key being the name\n // and value the value.\n const headers = []\n\n // 2. Let names be the result of convert header names to a sorted-lowercase\n // set with all the names of the headers in list.\n const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1)\n const cookies = this[kHeadersList].cookies\n\n // 3. For each name of names:\n for (let i = 0; i < names.length; ++i) {\n const [name, value] = names[i]\n // 1. If name is `set-cookie`, then:\n if (name === 'set-cookie') {\n // 1. Let values be a list of all values of headers in list whose name\n // is a byte-case-insensitive match for name, in order.\n\n // 2. For each value of values:\n // 1. Append (name, value) to headers.\n for (let j = 0; j < cookies.length; ++j) {\n headers.push([name, cookies[j]])\n }\n } else {\n // 2. Otherwise:\n\n // 1. Let value be the result of getting name from list.\n\n // 2. Assert: value is non-null.\n assert(value !== null)\n\n // 3. Append (name, value) to headers.\n headers.push([name, value])\n }\n }\n\n this[kHeadersList][kHeadersSortedMap] = headers\n\n // 4. Return headers.\n return headers\n }\n\n keys () {\n webidl.brandCheck(this, Headers)\n\n if (this[kGuard] === 'immutable') {\n const value = this[kHeadersSortedMap]\n return makeIterator(() => value, 'Headers',\n 'key')\n }\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, Headers)\n\n if (this[kGuard] === 'immutable') {\n const value = this[kHeadersSortedMap]\n return makeIterator(() => value, 'Headers',\n 'value')\n }\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'value'\n )\n }\n\n entries () {\n webidl.brandCheck(this, Headers)\n\n if (this[kGuard] === 'immutable') {\n const value = this[kHeadersSortedMap]\n return makeIterator(() => value, 'Headers',\n 'key+value')\n }\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key+value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: Headers) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n webidl.brandCheck(this, Headers)\n\n return this[kHeadersList]\n }\n}\n\nHeaders.prototype[Symbol.iterator] = Headers.prototype.entries\n\nObject.defineProperties(Headers.prototype, {\n append: kEnumerableProperty,\n delete: kEnumerableProperty,\n get: kEnumerableProperty,\n has: kEnumerableProperty,\n set: kEnumerableProperty,\n getSetCookie: kEnumerableProperty,\n keys: kEnumerableProperty,\n values: kEnumerableProperty,\n entries: kEnumerableProperty,\n forEach: kEnumerableProperty,\n [Symbol.iterator]: { enumerable: false },\n [Symbol.toStringTag]: {\n value: 'Headers',\n configurable: true\n },\n [util.inspect.custom]: {\n enumerable: false\n }\n})\n\nwebidl.converters.HeadersInit = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (V[Symbol.iterator]) {\n return webidl.converters['sequence>'](V)\n }\n\n return webidl.converters['record'](V)\n }\n\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence>', 'record']\n })\n}\n\nmodule.exports = {\n fill,\n Headers,\n HeadersList\n}\n","'use strict'\n\nconst { Headers, HeadersList, fill } = require('./headers')\nconst { extractBody, cloneBody, mixinBody } = require('./body')\nconst util = require('../core/util')\nconst { kEnumerableProperty } = util\nconst {\n isValidReasonPhrase,\n isCancelled,\n isAborted,\n isBlobLike,\n serializeJavascriptValueToJSONString,\n isErrorLike,\n isomorphicEncode\n} = require('./util')\nconst {\n redirectStatusSet,\n nullBodyStatus,\n DOMException\n} = require('./constants')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { FormData } = require('./formdata')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList, kConstruct } = require('../core/symbols')\nconst assert = require('assert')\nconst { types } = require('util')\n\nconst ReadableStream = globalThis.ReadableStream || require('stream/web').ReadableStream\nconst textEncoder = new TextEncoder('utf-8')\n\n// https://fetch.spec.whatwg.org/#response-class\nclass Response {\n // Creates network error Response.\n static error () {\n // TODO\n const relevantRealm = { settingsObject: {} }\n\n // The static error() method steps are to return the result of creating a\n // Response object, given a new network error, \"immutable\", and this’s\n // relevant Realm.\n const responseObject = new Response()\n responseObject[kState] = makeNetworkError()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response-json\n static json (data, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' })\n\n if (init !== null) {\n init = webidl.converters.ResponseInit(init)\n }\n\n // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data.\n const bytes = textEncoder.encode(\n serializeJavascriptValueToJSONString(data)\n )\n\n // 2. Let body be the result of extracting bytes.\n const body = extractBody(bytes)\n\n // 3. Let responseObject be the result of creating a Response object, given a new response,\n // \"response\", and this’s relevant Realm.\n const relevantRealm = { settingsObject: {} }\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'response'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 4. Perform initialize a response given responseObject, init, and (body, \"application/json\").\n initializeResponse(responseObject, init, { body: body[0], type: 'application/json' })\n\n // 5. Return responseObject.\n return responseObject\n }\n\n // Creates a redirect Response that redirects to url with status status.\n static redirect (url, status = 302) {\n const relevantRealm = { settingsObject: {} }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' })\n\n url = webidl.converters.USVString(url)\n status = webidl.converters['unsigned short'](status)\n\n // 1. Let parsedURL be the result of parsing url with current settings\n // object’s API base URL.\n // 2. If parsedURL is failure, then throw a TypeError.\n // TODO: base-URL?\n let parsedURL\n try {\n parsedURL = new URL(url, getGlobalOrigin())\n } catch (err) {\n throw Object.assign(new TypeError('Failed to parse URL from ' + url), {\n cause: err\n })\n }\n\n // 3. If status is not a redirect status, then throw a RangeError.\n if (!redirectStatusSet.has(status)) {\n throw new RangeError('Invalid status code ' + status)\n }\n\n // 4. Let responseObject be the result of creating a Response object,\n // given a new response, \"immutable\", and this’s relevant Realm.\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Set responseObject’s response’s status to status.\n responseObject[kState].status = status\n\n // 6. Let value be parsedURL, serialized and isomorphic encoded.\n const value = isomorphicEncode(URLSerializer(parsedURL))\n\n // 7. Append `Location`/value to responseObject’s response’s header list.\n responseObject[kState].headersList.append('location', value)\n\n // 8. Return responseObject.\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response\n constructor (body = null, init = {}) {\n if (body !== null) {\n body = webidl.converters.BodyInit(body)\n }\n\n init = webidl.converters.ResponseInit(init)\n\n // TODO\n this[kRealm] = { settingsObject: {} }\n\n // 1. Set this’s response to a new response.\n this[kState] = makeResponse({})\n\n // 2. Set this’s headers to a new Headers object with this’s relevant\n // Realm, whose header list is this’s response’s header list and guard\n // is \"response\".\n this[kHeaders] = new Headers(kConstruct)\n this[kHeaders][kGuard] = 'response'\n this[kHeaders][kHeadersList] = this[kState].headersList\n this[kHeaders][kRealm] = this[kRealm]\n\n // 3. Let bodyWithType be null.\n let bodyWithType = null\n\n // 4. If body is non-null, then set bodyWithType to the result of extracting body.\n if (body != null) {\n const [extractedBody, type] = extractBody(body)\n bodyWithType = { body: extractedBody, type }\n }\n\n // 5. Perform initialize a response given this, init, and bodyWithType.\n initializeResponse(this, init, bodyWithType)\n }\n\n // Returns response’s type, e.g., \"cors\".\n get type () {\n webidl.brandCheck(this, Response)\n\n // The type getter steps are to return this’s response’s type.\n return this[kState].type\n }\n\n // Returns response’s URL, if it has one; otherwise the empty string.\n get url () {\n webidl.brandCheck(this, Response)\n\n const urlList = this[kState].urlList\n\n // The url getter steps are to return the empty string if this’s\n // response’s URL is null; otherwise this’s response’s URL,\n // serialized with exclude fragment set to true.\n const url = urlList[urlList.length - 1] ?? null\n\n if (url === null) {\n return ''\n }\n\n return URLSerializer(url, true)\n }\n\n // Returns whether response was obtained through a redirect.\n get redirected () {\n webidl.brandCheck(this, Response)\n\n // The redirected getter steps are to return true if this’s response’s URL\n // list has more than one item; otherwise false.\n return this[kState].urlList.length > 1\n }\n\n // Returns response’s status.\n get status () {\n webidl.brandCheck(this, Response)\n\n // The status getter steps are to return this’s response’s status.\n return this[kState].status\n }\n\n // Returns whether response’s status is an ok status.\n get ok () {\n webidl.brandCheck(this, Response)\n\n // The ok getter steps are to return true if this’s response’s status is an\n // ok status; otherwise false.\n return this[kState].status >= 200 && this[kState].status <= 299\n }\n\n // Returns response’s status message.\n get statusText () {\n webidl.brandCheck(this, Response)\n\n // The statusText getter steps are to return this’s response’s status\n // message.\n return this[kState].statusText\n }\n\n // Returns response’s headers as Headers.\n get headers () {\n webidl.brandCheck(this, Response)\n\n // The headers getter steps are to return this’s headers.\n return this[kHeaders]\n }\n\n get body () {\n webidl.brandCheck(this, Response)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Response)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n // Returns a clone of response.\n clone () {\n webidl.brandCheck(this, Response)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || (this.body && this.body.locked)) {\n throw webidl.errors.exception({\n header: 'Response.clone',\n message: 'Body has already been consumed.'\n })\n }\n\n // 2. Let clonedResponse be the result of cloning this’s response.\n const clonedResponse = cloneResponse(this[kState])\n\n // 3. Return the result of creating a Response object, given\n // clonedResponse, this’s headers’s guard, and this’s relevant Realm.\n const clonedResponseObject = new Response()\n clonedResponseObject[kState] = clonedResponse\n clonedResponseObject[kRealm] = this[kRealm]\n clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList\n clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n return clonedResponseObject\n }\n}\n\nmixinBody(Response)\n\nObject.defineProperties(Response.prototype, {\n type: kEnumerableProperty,\n url: kEnumerableProperty,\n status: kEnumerableProperty,\n ok: kEnumerableProperty,\n redirected: kEnumerableProperty,\n statusText: kEnumerableProperty,\n headers: kEnumerableProperty,\n clone: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Response',\n configurable: true\n }\n})\n\nObject.defineProperties(Response, {\n json: kEnumerableProperty,\n redirect: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\n// https://fetch.spec.whatwg.org/#concept-response-clone\nfunction cloneResponse (response) {\n // To clone a response response, run these steps:\n\n // 1. If response is a filtered response, then return a new identical\n // filtered response whose internal response is a clone of response’s\n // internal response.\n if (response.internalResponse) {\n return filterResponse(\n cloneResponse(response.internalResponse),\n response.type\n )\n }\n\n // 2. Let newResponse be a copy of response, except for its body.\n const newResponse = makeResponse({ ...response, body: null })\n\n // 3. If response’s body is non-null, then set newResponse’s body to the\n // result of cloning response’s body.\n if (response.body != null) {\n newResponse.body = cloneBody(response.body)\n }\n\n // 4. Return newResponse.\n return newResponse\n}\n\nfunction makeResponse (init) {\n return {\n aborted: false,\n rangeRequested: false,\n timingAllowPassed: false,\n requestIncludesCredentials: false,\n type: 'default',\n status: 200,\n timingInfo: null,\n cacheState: '',\n statusText: '',\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList(),\n urlList: init.urlList ? [...init.urlList] : []\n }\n}\n\nfunction makeNetworkError (reason) {\n const isError = isErrorLike(reason)\n return makeResponse({\n type: 'error',\n status: 0,\n error: isError\n ? reason\n : new Error(reason ? String(reason) : reason),\n aborted: reason && reason.name === 'AbortError'\n })\n}\n\nfunction makeFilteredResponse (response, state) {\n state = {\n internalResponse: response,\n ...state\n }\n\n return new Proxy(response, {\n get (target, p) {\n return p in state ? state[p] : target[p]\n },\n set (target, p, value) {\n assert(!(p in state))\n target[p] = value\n return true\n }\n })\n}\n\n// https://fetch.spec.whatwg.org/#concept-filtered-response\nfunction filterResponse (response, type) {\n // Set response to the following filtered response with response as its\n // internal response, depending on request’s response tainting:\n if (type === 'basic') {\n // A basic filtered response is a filtered response whose type is \"basic\"\n // and header list excludes any headers in internal response’s header list\n // whose name is a forbidden response-header name.\n\n // Note: undici does not implement forbidden response-header names\n return makeFilteredResponse(response, {\n type: 'basic',\n headersList: response.headersList\n })\n } else if (type === 'cors') {\n // A CORS filtered response is a filtered response whose type is \"cors\"\n // and header list excludes any headers in internal response’s header\n // list whose name is not a CORS-safelisted response-header name, given\n // internal response’s CORS-exposed header-name list.\n\n // Note: undici does not implement CORS-safelisted response-header names\n return makeFilteredResponse(response, {\n type: 'cors',\n headersList: response.headersList\n })\n } else if (type === 'opaque') {\n // An opaque filtered response is a filtered response whose type is\n // \"opaque\", URL list is the empty list, status is 0, status message\n // is the empty byte sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaque',\n urlList: Object.freeze([]),\n status: 0,\n statusText: '',\n body: null\n })\n } else if (type === 'opaqueredirect') {\n // An opaque-redirect filtered response is a filtered response whose type\n // is \"opaqueredirect\", status is 0, status message is the empty byte\n // sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaqueredirect',\n status: 0,\n statusText: '',\n headersList: [],\n body: null\n })\n } else {\n assert(false)\n }\n}\n\n// https://fetch.spec.whatwg.org/#appropriate-network-error\nfunction makeAppropriateNetworkError (fetchParams, err = null) {\n // 1. Assert: fetchParams is canceled.\n assert(isCancelled(fetchParams))\n\n // 2. Return an aborted network error if fetchParams is aborted;\n // otherwise return a network error.\n return isAborted(fetchParams)\n ? makeNetworkError(Object.assign(new DOMException('The operation was aborted.', 'AbortError'), { cause: err }))\n : makeNetworkError(Object.assign(new DOMException('Request was cancelled.'), { cause: err }))\n}\n\n// https://whatpr.org/fetch/1392.html#initialize-a-response\nfunction initializeResponse (response, init, body) {\n // 1. If init[\"status\"] is not in the range 200 to 599, inclusive, then\n // throw a RangeError.\n if (init.status !== null && (init.status < 200 || init.status > 599)) {\n throw new RangeError('init[\"status\"] must be in the range of 200 to 599, inclusive.')\n }\n\n // 2. If init[\"statusText\"] does not match the reason-phrase token production,\n // then throw a TypeError.\n if ('statusText' in init && init.statusText != null) {\n // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2:\n // reason-phrase = *( HTAB / SP / VCHAR / obs-text )\n if (!isValidReasonPhrase(String(init.statusText))) {\n throw new TypeError('Invalid statusText')\n }\n }\n\n // 3. Set response’s response’s status to init[\"status\"].\n if ('status' in init && init.status != null) {\n response[kState].status = init.status\n }\n\n // 4. Set response’s response’s status message to init[\"statusText\"].\n if ('statusText' in init && init.statusText != null) {\n response[kState].statusText = init.statusText\n }\n\n // 5. If init[\"headers\"] exists, then fill response’s headers with init[\"headers\"].\n if ('headers' in init && init.headers != null) {\n fill(response[kHeaders], init.headers)\n }\n\n // 6. If body was given, then:\n if (body) {\n // 1. If response's status is a null body status, then throw a TypeError.\n if (nullBodyStatus.includes(response.status)) {\n throw webidl.errors.exception({\n header: 'Response constructor',\n message: 'Invalid response status code ' + response.status\n })\n }\n\n // 2. Set response's body to body's body.\n response[kState].body = body.body\n\n // 3. If body's type is non-null and response's header list does not contain\n // `Content-Type`, then append (`Content-Type`, body's type) to response's header list.\n if (body.type != null && !response[kState].headersList.contains('Content-Type')) {\n response[kState].headersList.append('content-type', body.type)\n }\n }\n}\n\nwebidl.converters.ReadableStream = webidl.interfaceConverter(\n ReadableStream\n)\n\nwebidl.converters.FormData = webidl.interfaceConverter(\n FormData\n)\n\nwebidl.converters.URLSearchParams = webidl.interfaceConverter(\n URLSearchParams\n)\n\n// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit\nwebidl.converters.XMLHttpRequestBodyInit = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (types.isArrayBuffer(V) || types.isTypedArray(V) || types.isDataView(V)) {\n return webidl.converters.BufferSource(V)\n }\n\n if (util.isFormDataLike(V)) {\n return webidl.converters.FormData(V, { strict: false })\n }\n\n if (V instanceof URLSearchParams) {\n return webidl.converters.URLSearchParams(V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit\nwebidl.converters.BodyInit = function (V) {\n if (V instanceof ReadableStream) {\n return webidl.converters.ReadableStream(V)\n }\n\n // Note: the spec doesn't include async iterables,\n // this is an undici extension.\n if (V?.[Symbol.asyncIterator]) {\n return V\n }\n\n return webidl.converters.XMLHttpRequestBodyInit(V)\n}\n\nwebidl.converters.ResponseInit = webidl.dictionaryConverter([\n {\n key: 'status',\n converter: webidl.converters['unsigned short'],\n defaultValue: 200\n },\n {\n key: 'statusText',\n converter: webidl.converters.ByteString,\n defaultValue: ''\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n }\n])\n\nmodule.exports = {\n makeNetworkError,\n makeResponse,\n makeAppropriateNetworkError,\n filterResponse,\n Response,\n cloneResponse\n}\n","/* globals AbortController */\n\n'use strict'\n\nconst { extractBody, mixinBody, cloneBody } = require('./body')\nconst { Headers, fill: fillHeaders, HeadersList } = require('./headers')\nconst { FinalizationRegistry } = require('../compat/dispatcher-weakref')()\nconst util = require('../core/util')\nconst {\n isValidHTTPToken,\n sameOrigin,\n normalizeMethod,\n makePolicyContainer,\n normalizeMethodRecord\n} = require('./util')\nconst {\n forbiddenMethodsSet,\n corsSafeListedMethodsSet,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n requestDuplex\n} = require('./constants')\nconst { kEnumerableProperty } = util\nconst { kHeaders, kSignal, kState, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList, kConstruct } = require('../core/symbols')\nconst assert = require('assert')\nconst { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require('events')\n\nlet TransformStream = globalThis.TransformStream\n\nconst kAbortController = Symbol('abortController')\n\nconst requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {\n signal.removeEventListener('abort', abort)\n})\n\n// https://fetch.spec.whatwg.org/#request-class\nclass Request {\n // https://fetch.spec.whatwg.org/#dom-request\n constructor (input, init = {}) {\n if (input === kConstruct) {\n return\n }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' })\n\n input = webidl.converters.RequestInfo(input)\n init = webidl.converters.RequestInit(init)\n\n // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object\n this[kRealm] = {\n settingsObject: {\n baseUrl: getGlobalOrigin(),\n get origin () {\n return this.baseUrl?.origin\n },\n policyContainer: makePolicyContainer()\n }\n }\n\n // 1. Let request be null.\n let request = null\n\n // 2. Let fallbackMode be null.\n let fallbackMode = null\n\n // 3. Let baseURL be this’s relevant settings object’s API base URL.\n const baseUrl = this[kRealm].settingsObject.baseUrl\n\n // 4. Let signal be null.\n let signal = null\n\n // 5. If input is a string, then:\n if (typeof input === 'string') {\n // 1. Let parsedURL be the result of parsing input with baseURL.\n // 2. If parsedURL is failure, then throw a TypeError.\n let parsedURL\n try {\n parsedURL = new URL(input, baseUrl)\n } catch (err) {\n throw new TypeError('Failed to parse URL from ' + input, { cause: err })\n }\n\n // 3. If parsedURL includes credentials, then throw a TypeError.\n if (parsedURL.username || parsedURL.password) {\n throw new TypeError(\n 'Request cannot be constructed from a URL that includes credentials: ' +\n input\n )\n }\n\n // 4. Set request to a new request whose URL is parsedURL.\n request = makeRequest({ urlList: [parsedURL] })\n\n // 5. Set fallbackMode to \"cors\".\n fallbackMode = 'cors'\n } else {\n // 6. Otherwise:\n\n // 7. Assert: input is a Request object.\n assert(input instanceof Request)\n\n // 8. Set request to input’s request.\n request = input[kState]\n\n // 9. Set signal to input’s signal.\n signal = input[kSignal]\n }\n\n // 7. Let origin be this’s relevant settings object’s origin.\n const origin = this[kRealm].settingsObject.origin\n\n // 8. Let window be \"client\".\n let window = 'client'\n\n // 9. If request’s window is an environment settings object and its origin\n // is same origin with origin, then set window to request’s window.\n if (\n request.window?.constructor?.name === 'EnvironmentSettingsObject' &&\n sameOrigin(request.window, origin)\n ) {\n window = request.window\n }\n\n // 10. If init[\"window\"] exists and is non-null, then throw a TypeError.\n if (init.window != null) {\n throw new TypeError(`'window' option '${window}' must be null`)\n }\n\n // 11. If init[\"window\"] exists, then set window to \"no-window\".\n if ('window' in init) {\n window = 'no-window'\n }\n\n // 12. Set request to a new request with the following properties:\n request = makeRequest({\n // URL request’s URL.\n // undici implementation note: this is set as the first item in request's urlList in makeRequest\n // method request’s method.\n method: request.method,\n // header list A copy of request’s header list.\n // undici implementation note: headersList is cloned in makeRequest\n headersList: request.headersList,\n // unsafe-request flag Set.\n unsafeRequest: request.unsafeRequest,\n // client This’s relevant settings object.\n client: this[kRealm].settingsObject,\n // window window.\n window,\n // priority request’s priority.\n priority: request.priority,\n // origin request’s origin. The propagation of the origin is only significant for navigation requests\n // being handled by a service worker. In this scenario a request can have an origin that is different\n // from the current client.\n origin: request.origin,\n // referrer request’s referrer.\n referrer: request.referrer,\n // referrer policy request’s referrer policy.\n referrerPolicy: request.referrerPolicy,\n // mode request’s mode.\n mode: request.mode,\n // credentials mode request’s credentials mode.\n credentials: request.credentials,\n // cache mode request’s cache mode.\n cache: request.cache,\n // redirect mode request’s redirect mode.\n redirect: request.redirect,\n // integrity metadata request’s integrity metadata.\n integrity: request.integrity,\n // keepalive request’s keepalive.\n keepalive: request.keepalive,\n // reload-navigation flag request’s reload-navigation flag.\n reloadNavigation: request.reloadNavigation,\n // history-navigation flag request’s history-navigation flag.\n historyNavigation: request.historyNavigation,\n // URL list A clone of request’s URL list.\n urlList: [...request.urlList]\n })\n\n const initHasKey = Object.keys(init).length !== 0\n\n // 13. If init is not empty, then:\n if (initHasKey) {\n // 1. If request’s mode is \"navigate\", then set it to \"same-origin\".\n if (request.mode === 'navigate') {\n request.mode = 'same-origin'\n }\n\n // 2. Unset request’s reload-navigation flag.\n request.reloadNavigation = false\n\n // 3. Unset request’s history-navigation flag.\n request.historyNavigation = false\n\n // 4. Set request’s origin to \"client\".\n request.origin = 'client'\n\n // 5. Set request’s referrer to \"client\"\n request.referrer = 'client'\n\n // 6. Set request’s referrer policy to the empty string.\n request.referrerPolicy = ''\n\n // 7. Set request’s URL to request’s current URL.\n request.url = request.urlList[request.urlList.length - 1]\n\n // 8. Set request’s URL list to « request’s URL ».\n request.urlList = [request.url]\n }\n\n // 14. If init[\"referrer\"] exists, then:\n if (init.referrer !== undefined) {\n // 1. Let referrer be init[\"referrer\"].\n const referrer = init.referrer\n\n // 2. If referrer is the empty string, then set request’s referrer to \"no-referrer\".\n if (referrer === '') {\n request.referrer = 'no-referrer'\n } else {\n // 1. Let parsedReferrer be the result of parsing referrer with\n // baseURL.\n // 2. If parsedReferrer is failure, then throw a TypeError.\n let parsedReferrer\n try {\n parsedReferrer = new URL(referrer, baseUrl)\n } catch (err) {\n throw new TypeError(`Referrer \"${referrer}\" is not a valid URL.`, { cause: err })\n }\n\n // 3. If one of the following is true\n // - parsedReferrer’s scheme is \"about\" and path is the string \"client\"\n // - parsedReferrer’s origin is not same origin with origin\n // then set request’s referrer to \"client\".\n if (\n (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') ||\n (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl))\n ) {\n request.referrer = 'client'\n } else {\n // 4. Otherwise, set request’s referrer to parsedReferrer.\n request.referrer = parsedReferrer\n }\n }\n }\n\n // 15. If init[\"referrerPolicy\"] exists, then set request’s referrer policy\n // to it.\n if (init.referrerPolicy !== undefined) {\n request.referrerPolicy = init.referrerPolicy\n }\n\n // 16. Let mode be init[\"mode\"] if it exists, and fallbackMode otherwise.\n let mode\n if (init.mode !== undefined) {\n mode = init.mode\n } else {\n mode = fallbackMode\n }\n\n // 17. If mode is \"navigate\", then throw a TypeError.\n if (mode === 'navigate') {\n throw webidl.errors.exception({\n header: 'Request constructor',\n message: 'invalid request mode navigate.'\n })\n }\n\n // 18. If mode is non-null, set request’s mode to mode.\n if (mode != null) {\n request.mode = mode\n }\n\n // 19. If init[\"credentials\"] exists, then set request’s credentials mode\n // to it.\n if (init.credentials !== undefined) {\n request.credentials = init.credentials\n }\n\n // 18. If init[\"cache\"] exists, then set request’s cache mode to it.\n if (init.cache !== undefined) {\n request.cache = init.cache\n }\n\n // 21. If request’s cache mode is \"only-if-cached\" and request’s mode is\n // not \"same-origin\", then throw a TypeError.\n if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n throw new TypeError(\n \"'only-if-cached' can be set only with 'same-origin' mode\"\n )\n }\n\n // 22. If init[\"redirect\"] exists, then set request’s redirect mode to it.\n if (init.redirect !== undefined) {\n request.redirect = init.redirect\n }\n\n // 23. If init[\"integrity\"] exists, then set request’s integrity metadata to it.\n if (init.integrity != null) {\n request.integrity = String(init.integrity)\n }\n\n // 24. If init[\"keepalive\"] exists, then set request’s keepalive to it.\n if (init.keepalive !== undefined) {\n request.keepalive = Boolean(init.keepalive)\n }\n\n // 25. If init[\"method\"] exists, then:\n if (init.method !== undefined) {\n // 1. Let method be init[\"method\"].\n let method = init.method\n\n // 2. If method is not a method or method is a forbidden method, then\n // throw a TypeError.\n if (!isValidHTTPToken(method)) {\n throw new TypeError(`'${method}' is not a valid HTTP method.`)\n }\n\n if (forbiddenMethodsSet.has(method.toUpperCase())) {\n throw new TypeError(`'${method}' HTTP method is unsupported.`)\n }\n\n // 3. Normalize method.\n method = normalizeMethodRecord[method] ?? normalizeMethod(method)\n\n // 4. Set request’s method to method.\n request.method = method\n }\n\n // 26. If init[\"signal\"] exists, then set signal to it.\n if (init.signal !== undefined) {\n signal = init.signal\n }\n\n // 27. Set this’s request to request.\n this[kState] = request\n\n // 28. Set this’s signal to a new AbortSignal object with this’s relevant\n // Realm.\n // TODO: could this be simplified with AbortSignal.any\n // (https://dom.spec.whatwg.org/#dom-abortsignal-any)\n const ac = new AbortController()\n this[kSignal] = ac.signal\n this[kSignal][kRealm] = this[kRealm]\n\n // 29. If signal is not null, then make this’s signal follow signal.\n if (signal != null) {\n if (\n !signal ||\n typeof signal.aborted !== 'boolean' ||\n typeof signal.addEventListener !== 'function'\n ) {\n throw new TypeError(\n \"Failed to construct 'Request': member signal is not of type AbortSignal.\"\n )\n }\n\n if (signal.aborted) {\n ac.abort(signal.reason)\n } else {\n // Keep a strong ref to ac while request object\n // is alive. This is needed to prevent AbortController\n // from being prematurely garbage collected.\n // See, https://github.com/nodejs/undici/issues/1926.\n this[kAbortController] = ac\n\n const acRef = new WeakRef(ac)\n const abort = function () {\n const ac = acRef.deref()\n if (ac !== undefined) {\n ac.abort(this.reason)\n }\n }\n\n // Third-party AbortControllers may not work with these.\n // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619.\n try {\n // If the max amount of listeners is equal to the default, increase it\n // This is only available in node >= v19.9.0\n if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) {\n setMaxListeners(100, signal)\n } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) {\n setMaxListeners(100, signal)\n }\n } catch {}\n\n util.addAbortListener(signal, abort)\n requestFinalizer.register(ac, { signal, abort })\n }\n }\n\n // 30. Set this’s headers to a new Headers object with this’s relevant\n // Realm, whose header list is request’s header list and guard is\n // \"request\".\n this[kHeaders] = new Headers(kConstruct)\n this[kHeaders][kHeadersList] = request.headersList\n this[kHeaders][kGuard] = 'request'\n this[kHeaders][kRealm] = this[kRealm]\n\n // 31. If this’s request’s mode is \"no-cors\", then:\n if (mode === 'no-cors') {\n // 1. If this’s request’s method is not a CORS-safelisted method,\n // then throw a TypeError.\n if (!corsSafeListedMethodsSet.has(request.method)) {\n throw new TypeError(\n `'${request.method} is unsupported in no-cors mode.`\n )\n }\n\n // 2. Set this’s headers’s guard to \"request-no-cors\".\n this[kHeaders][kGuard] = 'request-no-cors'\n }\n\n // 32. If init is not empty, then:\n if (initHasKey) {\n /** @type {HeadersList} */\n const headersList = this[kHeaders][kHeadersList]\n // 1. Let headers be a copy of this’s headers and its associated header\n // list.\n // 2. If init[\"headers\"] exists, then set headers to init[\"headers\"].\n const headers = init.headers !== undefined ? init.headers : new HeadersList(headersList)\n\n // 3. Empty this’s headers’s header list.\n headersList.clear()\n\n // 4. If headers is a Headers object, then for each header in its header\n // list, append header’s name/header’s value to this’s headers.\n if (headers instanceof HeadersList) {\n for (const [key, val] of headers) {\n headersList.append(key, val)\n }\n // Note: Copy the `set-cookie` meta-data.\n headersList.cookies = headers.cookies\n } else {\n // 5. Otherwise, fill this’s headers with headers.\n fillHeaders(this[kHeaders], headers)\n }\n }\n\n // 33. Let inputBody be input’s request’s body if input is a Request\n // object; otherwise null.\n const inputBody = input instanceof Request ? input[kState].body : null\n\n // 34. If either init[\"body\"] exists and is non-null or inputBody is\n // non-null, and request’s method is `GET` or `HEAD`, then throw a\n // TypeError.\n if (\n (init.body != null || inputBody != null) &&\n (request.method === 'GET' || request.method === 'HEAD')\n ) {\n throw new TypeError('Request with GET/HEAD method cannot have body.')\n }\n\n // 35. Let initBody be null.\n let initBody = null\n\n // 36. If init[\"body\"] exists and is non-null, then:\n if (init.body != null) {\n // 1. Let Content-Type be null.\n // 2. Set initBody and Content-Type to the result of extracting\n // init[\"body\"], with keepalive set to request’s keepalive.\n const [extractedBody, contentType] = extractBody(\n init.body,\n request.keepalive\n )\n initBody = extractedBody\n\n // 3, If Content-Type is non-null and this’s headers’s header list does\n // not contain `Content-Type`, then append `Content-Type`/Content-Type to\n // this’s headers.\n if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) {\n this[kHeaders].append('content-type', contentType)\n }\n }\n\n // 37. Let inputOrInitBody be initBody if it is non-null; otherwise\n // inputBody.\n const inputOrInitBody = initBody ?? inputBody\n\n // 38. If inputOrInitBody is non-null and inputOrInitBody’s source is\n // null, then:\n if (inputOrInitBody != null && inputOrInitBody.source == null) {\n // 1. If initBody is non-null and init[\"duplex\"] does not exist,\n // then throw a TypeError.\n if (initBody != null && init.duplex == null) {\n throw new TypeError('RequestInit: duplex option is required when sending a body.')\n }\n\n // 2. If this’s request’s mode is neither \"same-origin\" nor \"cors\",\n // then throw a TypeError.\n if (request.mode !== 'same-origin' && request.mode !== 'cors') {\n throw new TypeError(\n 'If request is made from ReadableStream, mode should be \"same-origin\" or \"cors\"'\n )\n }\n\n // 3. Set this’s request’s use-CORS-preflight flag.\n request.useCORSPreflightFlag = true\n }\n\n // 39. Let finalBody be inputOrInitBody.\n let finalBody = inputOrInitBody\n\n // 40. If initBody is null and inputBody is non-null, then:\n if (initBody == null && inputBody != null) {\n // 1. If input is unusable, then throw a TypeError.\n if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) {\n throw new TypeError(\n 'Cannot construct a Request with a Request object that has already been used.'\n )\n }\n\n // 2. Set finalBody to the result of creating a proxy for inputBody.\n if (!TransformStream) {\n TransformStream = require('stream/web').TransformStream\n }\n\n // https://streams.spec.whatwg.org/#readablestream-create-a-proxy\n const identityTransform = new TransformStream()\n inputBody.stream.pipeThrough(identityTransform)\n finalBody = {\n source: inputBody.source,\n length: inputBody.length,\n stream: identityTransform.readable\n }\n }\n\n // 41. Set this’s request’s body to finalBody.\n this[kState].body = finalBody\n }\n\n // Returns request’s HTTP method, which is \"GET\" by default.\n get method () {\n webidl.brandCheck(this, Request)\n\n // The method getter steps are to return this’s request’s method.\n return this[kState].method\n }\n\n // Returns the URL of request as a string.\n get url () {\n webidl.brandCheck(this, Request)\n\n // The url getter steps are to return this’s request’s URL, serialized.\n return URLSerializer(this[kState].url)\n }\n\n // Returns a Headers object consisting of the headers associated with request.\n // Note that headers added in the network layer by the user agent will not\n // be accounted for in this object, e.g., the \"Host\" header.\n get headers () {\n webidl.brandCheck(this, Request)\n\n // The headers getter steps are to return this’s headers.\n return this[kHeaders]\n }\n\n // Returns the kind of resource requested by request, e.g., \"document\"\n // or \"script\".\n get destination () {\n webidl.brandCheck(this, Request)\n\n // The destination getter are to return this’s request’s destination.\n return this[kState].destination\n }\n\n // Returns the referrer of request. Its value can be a same-origin URL if\n // explicitly set in init, the empty string to indicate no referrer, and\n // \"about:client\" when defaulting to the global’s default. This is used\n // during fetching to determine the value of the `Referer` header of the\n // request being made.\n get referrer () {\n webidl.brandCheck(this, Request)\n\n // 1. If this’s request’s referrer is \"no-referrer\", then return the\n // empty string.\n if (this[kState].referrer === 'no-referrer') {\n return ''\n }\n\n // 2. If this’s request’s referrer is \"client\", then return\n // \"about:client\".\n if (this[kState].referrer === 'client') {\n return 'about:client'\n }\n\n // Return this’s request’s referrer, serialized.\n return this[kState].referrer.toString()\n }\n\n // Returns the referrer policy associated with request.\n // This is used during fetching to compute the value of the request’s\n // referrer.\n get referrerPolicy () {\n webidl.brandCheck(this, Request)\n\n // The referrerPolicy getter steps are to return this’s request’s referrer policy.\n return this[kState].referrerPolicy\n }\n\n // Returns the mode associated with request, which is a string indicating\n // whether the request will use CORS, or will be restricted to same-origin\n // URLs.\n get mode () {\n webidl.brandCheck(this, Request)\n\n // The mode getter steps are to return this’s request’s mode.\n return this[kState].mode\n }\n\n // Returns the credentials mode associated with request,\n // which is a string indicating whether credentials will be sent with the\n // request always, never, or only when sent to a same-origin URL.\n get credentials () {\n // The credentials getter steps are to return this’s request’s credentials mode.\n return this[kState].credentials\n }\n\n // Returns the cache mode associated with request,\n // which is a string indicating how the request will\n // interact with the browser’s cache when fetching.\n get cache () {\n webidl.brandCheck(this, Request)\n\n // The cache getter steps are to return this’s request’s cache mode.\n return this[kState].cache\n }\n\n // Returns the redirect mode associated with request,\n // which is a string indicating how redirects for the\n // request will be handled during fetching. A request\n // will follow redirects by default.\n get redirect () {\n webidl.brandCheck(this, Request)\n\n // The redirect getter steps are to return this’s request’s redirect mode.\n return this[kState].redirect\n }\n\n // Returns request’s subresource integrity metadata, which is a\n // cryptographic hash of the resource being fetched. Its value\n // consists of multiple hashes separated by whitespace. [SRI]\n get integrity () {\n webidl.brandCheck(this, Request)\n\n // The integrity getter steps are to return this’s request’s integrity\n // metadata.\n return this[kState].integrity\n }\n\n // Returns a boolean indicating whether or not request can outlive the\n // global in which it was created.\n get keepalive () {\n webidl.brandCheck(this, Request)\n\n // The keepalive getter steps are to return this’s request’s keepalive.\n return this[kState].keepalive\n }\n\n // Returns a boolean indicating whether or not request is for a reload\n // navigation.\n get isReloadNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isReloadNavigation getter steps are to return true if this’s\n // request’s reload-navigation flag is set; otherwise false.\n return this[kState].reloadNavigation\n }\n\n // Returns a boolean indicating whether or not request is for a history\n // navigation (a.k.a. back-foward navigation).\n get isHistoryNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isHistoryNavigation getter steps are to return true if this’s request’s\n // history-navigation flag is set; otherwise false.\n return this[kState].historyNavigation\n }\n\n // Returns the signal associated with request, which is an AbortSignal\n // object indicating whether or not request has been aborted, and its\n // abort event handler.\n get signal () {\n webidl.brandCheck(this, Request)\n\n // The signal getter steps are to return this’s signal.\n return this[kSignal]\n }\n\n get body () {\n webidl.brandCheck(this, Request)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Request)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n get duplex () {\n webidl.brandCheck(this, Request)\n\n return 'half'\n }\n\n // Returns a clone of request.\n clone () {\n webidl.brandCheck(this, Request)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || this.body?.locked) {\n throw new TypeError('unusable')\n }\n\n // 2. Let clonedRequest be the result of cloning this’s request.\n const clonedRequest = cloneRequest(this[kState])\n\n // 3. Let clonedRequestObject be the result of creating a Request object,\n // given clonedRequest, this’s headers’s guard, and this’s relevant Realm.\n const clonedRequestObject = new Request(kConstruct)\n clonedRequestObject[kState] = clonedRequest\n clonedRequestObject[kRealm] = this[kRealm]\n clonedRequestObject[kHeaders] = new Headers(kConstruct)\n clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList\n clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n // 4. Make clonedRequestObject’s signal follow this’s signal.\n const ac = new AbortController()\n if (this.signal.aborted) {\n ac.abort(this.signal.reason)\n } else {\n util.addAbortListener(\n this.signal,\n () => {\n ac.abort(this.signal.reason)\n }\n )\n }\n clonedRequestObject[kSignal] = ac.signal\n\n // 4. Return clonedRequestObject.\n return clonedRequestObject\n }\n}\n\nmixinBody(Request)\n\nfunction makeRequest (init) {\n // https://fetch.spec.whatwg.org/#requests\n const request = {\n method: 'GET',\n localURLsOnly: false,\n unsafeRequest: false,\n body: null,\n client: null,\n reservedClient: null,\n replacesClientId: '',\n window: 'client',\n keepalive: false,\n serviceWorkers: 'all',\n initiator: '',\n destination: '',\n priority: null,\n origin: 'client',\n policyContainer: 'client',\n referrer: 'client',\n referrerPolicy: '',\n mode: 'no-cors',\n useCORSPreflightFlag: false,\n credentials: 'same-origin',\n useCredentials: false,\n cache: 'default',\n redirect: 'follow',\n integrity: '',\n cryptoGraphicsNonceMetadata: '',\n parserMetadata: '',\n reloadNavigation: false,\n historyNavigation: false,\n userActivation: false,\n taintedOrigin: false,\n redirectCount: 0,\n responseTainting: 'basic',\n preventNoCacheCacheControlHeaderModification: false,\n done: false,\n timingAllowFailed: false,\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList()\n }\n request.url = request.urlList[0]\n return request\n}\n\n// https://fetch.spec.whatwg.org/#concept-request-clone\nfunction cloneRequest (request) {\n // To clone a request request, run these steps:\n\n // 1. Let newRequest be a copy of request, except for its body.\n const newRequest = makeRequest({ ...request, body: null })\n\n // 2. If request’s body is non-null, set newRequest’s body to the\n // result of cloning request’s body.\n if (request.body != null) {\n newRequest.body = cloneBody(request.body)\n }\n\n // 3. Return newRequest.\n return newRequest\n}\n\nObject.defineProperties(Request.prototype, {\n method: kEnumerableProperty,\n url: kEnumerableProperty,\n headers: kEnumerableProperty,\n redirect: kEnumerableProperty,\n clone: kEnumerableProperty,\n signal: kEnumerableProperty,\n duplex: kEnumerableProperty,\n destination: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n isHistoryNavigation: kEnumerableProperty,\n isReloadNavigation: kEnumerableProperty,\n keepalive: kEnumerableProperty,\n integrity: kEnumerableProperty,\n cache: kEnumerableProperty,\n credentials: kEnumerableProperty,\n attribute: kEnumerableProperty,\n referrerPolicy: kEnumerableProperty,\n referrer: kEnumerableProperty,\n mode: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Request',\n configurable: true\n }\n})\n\nwebidl.converters.Request = webidl.interfaceConverter(\n Request\n)\n\n// https://fetch.spec.whatwg.org/#requestinfo\nwebidl.converters.RequestInfo = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (V instanceof Request) {\n return webidl.converters.Request(V)\n }\n\n return webidl.converters.USVString(V)\n}\n\nwebidl.converters.AbortSignal = webidl.interfaceConverter(\n AbortSignal\n)\n\n// https://fetch.spec.whatwg.org/#requestinit\nwebidl.converters.RequestInit = webidl.dictionaryConverter([\n {\n key: 'method',\n converter: webidl.converters.ByteString\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n },\n {\n key: 'body',\n converter: webidl.nullableConverter(\n webidl.converters.BodyInit\n )\n },\n {\n key: 'referrer',\n converter: webidl.converters.USVString\n },\n {\n key: 'referrerPolicy',\n converter: webidl.converters.DOMString,\n // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy\n allowedValues: referrerPolicy\n },\n {\n key: 'mode',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#concept-request-mode\n allowedValues: requestMode\n },\n {\n key: 'credentials',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcredentials\n allowedValues: requestCredentials\n },\n {\n key: 'cache',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcache\n allowedValues: requestCache\n },\n {\n key: 'redirect',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestredirect\n allowedValues: requestRedirect\n },\n {\n key: 'integrity',\n converter: webidl.converters.DOMString\n },\n {\n key: 'keepalive',\n converter: webidl.converters.boolean\n },\n {\n key: 'signal',\n converter: webidl.nullableConverter(\n (signal) => webidl.converters.AbortSignal(\n signal,\n { strict: false }\n )\n )\n },\n {\n key: 'window',\n converter: webidl.converters.any\n },\n {\n key: 'duplex',\n converter: webidl.converters.DOMString,\n allowedValues: requestDuplex\n }\n])\n\nmodule.exports = { Request, makeRequest }\n","// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst {\n Response,\n makeNetworkError,\n makeAppropriateNetworkError,\n filterResponse,\n makeResponse\n} = require('./response')\nconst { Headers } = require('./headers')\nconst { Request, makeRequest } = require('./request')\nconst zlib = require('zlib')\nconst {\n bytesMatch,\n makePolicyContainer,\n clonePolicyContainer,\n requestBadPort,\n TAOCheck,\n appendRequestOriginHeader,\n responseLocationURL,\n requestCurrentURL,\n setRequestReferrerPolicyOnRedirect,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n createOpaqueTimingInfo,\n appendFetchMetadata,\n corsCheck,\n crossOriginResourcePolicyCheck,\n determineRequestsReferrer,\n coarsenedSharedCurrentTime,\n createDeferredPromise,\n isBlobLike,\n sameOrigin,\n isCancelled,\n isAborted,\n isErrorLike,\n fullyReadBody,\n readableStreamClose,\n isomorphicEncode,\n urlIsLocal,\n urlIsHttpHttpsScheme,\n urlHasHttpsScheme\n} = require('./util')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst assert = require('assert')\nconst { safelyExtractBody } = require('./body')\nconst {\n redirectStatusSet,\n nullBodyStatus,\n safeMethodsSet,\n requestBodyHeader,\n subresourceSet,\n DOMException\n} = require('./constants')\nconst { kHeadersList } = require('../core/symbols')\nconst EE = require('events')\nconst { Readable, pipeline } = require('stream')\nconst { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = require('../core/util')\nconst { dataURLProcessor, serializeAMimeType } = require('./dataURL')\nconst { TransformStream } = require('stream/web')\nconst { getGlobalDispatcher } = require('../global')\nconst { webidl } = require('./webidl')\nconst { STATUS_CODES } = require('http')\nconst GET_OR_HEAD = ['GET', 'HEAD']\n\n/** @type {import('buffer').resolveObjectURL} */\nlet resolveObjectURL\nlet ReadableStream = globalThis.ReadableStream\n\nclass Fetch extends EE {\n constructor (dispatcher) {\n super()\n\n this.dispatcher = dispatcher\n this.connection = null\n this.dump = false\n this.state = 'ongoing'\n // 2 terminated listeners get added per request,\n // but only 1 gets removed. If there are 20 redirects,\n // 21 listeners will be added.\n // See https://github.com/nodejs/undici/issues/1711\n // TODO (fix): Find and fix root cause for leaked listener.\n this.setMaxListeners(21)\n }\n\n terminate (reason) {\n if (this.state !== 'ongoing') {\n return\n }\n\n this.state = 'terminated'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n\n // https://fetch.spec.whatwg.org/#fetch-controller-abort\n abort (error) {\n if (this.state !== 'ongoing') {\n return\n }\n\n // 1. Set controller’s state to \"aborted\".\n this.state = 'aborted'\n\n // 2. Let fallbackError be an \"AbortError\" DOMException.\n // 3. Set error to fallbackError if it is not given.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 4. Let serializedError be StructuredSerialize(error).\n // If that threw an exception, catch it, and let\n // serializedError be StructuredSerialize(fallbackError).\n\n // 5. Set controller’s serialized abort reason to serializedError.\n this.serializedAbortReason = error\n\n this.connection?.destroy(error)\n this.emit('terminated', error)\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-method\nfunction fetch (input, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' })\n\n // 1. Let p be a new promise.\n const p = createDeferredPromise()\n\n // 2. Let requestObject be the result of invoking the initial value of\n // Request as constructor with input and init as arguments. If this throws\n // an exception, reject p with it and return p.\n let requestObject\n\n try {\n requestObject = new Request(input, init)\n } catch (e) {\n p.reject(e)\n return p.promise\n }\n\n // 3. Let request be requestObject’s request.\n const request = requestObject[kState]\n\n // 4. If requestObject’s signal’s aborted flag is set, then:\n if (requestObject.signal.aborted) {\n // 1. Abort the fetch() call with p, request, null, and\n // requestObject’s signal’s abort reason.\n abortFetch(p, request, null, requestObject.signal.reason)\n\n // 2. Return p.\n return p.promise\n }\n\n // 5. Let globalObject be request’s client’s global object.\n const globalObject = request.client.globalObject\n\n // 6. If globalObject is a ServiceWorkerGlobalScope object, then set\n // request’s service-workers mode to \"none\".\n if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') {\n request.serviceWorkers = 'none'\n }\n\n // 7. Let responseObject be null.\n let responseObject = null\n\n // 8. Let relevantRealm be this’s relevant Realm.\n const relevantRealm = null\n\n // 9. Let locallyAborted be false.\n let locallyAborted = false\n\n // 10. Let controller be null.\n let controller = null\n\n // 11. Add the following abort steps to requestObject’s signal:\n addAbortListener(\n requestObject.signal,\n () => {\n // 1. Set locallyAborted to true.\n locallyAborted = true\n\n // 2. Assert: controller is non-null.\n assert(controller != null)\n\n // 3. Abort controller with requestObject’s signal’s abort reason.\n controller.abort(requestObject.signal.reason)\n\n // 4. Abort the fetch() call with p, request, responseObject,\n // and requestObject’s signal’s abort reason.\n abortFetch(p, request, responseObject, requestObject.signal.reason)\n }\n )\n\n // 12. Let handleFetchDone given response response be to finalize and\n // report timing with response, globalObject, and \"fetch\".\n const handleFetchDone = (response) =>\n finalizeAndReportTiming(response, 'fetch')\n\n // 13. Set controller to the result of calling fetch given request,\n // with processResponseEndOfBody set to handleFetchDone, and processResponse\n // given response being these substeps:\n\n const processResponse = (response) => {\n // 1. If locallyAborted is true, terminate these substeps.\n if (locallyAborted) {\n return Promise.resolve()\n }\n\n // 2. If response’s aborted flag is set, then:\n if (response.aborted) {\n // 1. Let deserializedError be the result of deserialize a serialized\n // abort reason given controller’s serialized abort reason and\n // relevantRealm.\n\n // 2. Abort the fetch() call with p, request, responseObject, and\n // deserializedError.\n\n abortFetch(p, request, responseObject, controller.serializedAbortReason)\n return Promise.resolve()\n }\n\n // 3. If response is a network error, then reject p with a TypeError\n // and terminate these substeps.\n if (response.type === 'error') {\n p.reject(\n Object.assign(new TypeError('fetch failed'), { cause: response.error })\n )\n return Promise.resolve()\n }\n\n // 4. Set responseObject to the result of creating a Response object,\n // given response, \"immutable\", and relevantRealm.\n responseObject = new Response()\n responseObject[kState] = response\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Resolve p with responseObject.\n p.resolve(responseObject)\n }\n\n controller = fetching({\n request,\n processResponseEndOfBody: handleFetchDone,\n processResponse,\n dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici\n })\n\n // 14. Return p.\n return p.promise\n}\n\n// https://fetch.spec.whatwg.org/#finalize-and-report-timing\nfunction finalizeAndReportTiming (response, initiatorType = 'other') {\n // 1. If response is an aborted network error, then return.\n if (response.type === 'error' && response.aborted) {\n return\n }\n\n // 2. If response’s URL list is null or empty, then return.\n if (!response.urlList?.length) {\n return\n }\n\n // 3. Let originalURL be response’s URL list[0].\n const originalURL = response.urlList[0]\n\n // 4. Let timingInfo be response’s timing info.\n let timingInfo = response.timingInfo\n\n // 5. Let cacheState be response’s cache state.\n let cacheState = response.cacheState\n\n // 6. If originalURL’s scheme is not an HTTP(S) scheme, then return.\n if (!urlIsHttpHttpsScheme(originalURL)) {\n return\n }\n\n // 7. If timingInfo is null, then return.\n if (timingInfo === null) {\n return\n }\n\n // 8. If response’s timing allow passed flag is not set, then:\n if (!response.timingAllowPassed) {\n // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo.\n timingInfo = createOpaqueTimingInfo({\n startTime: timingInfo.startTime\n })\n\n // 2. Set cacheState to the empty string.\n cacheState = ''\n }\n\n // 9. Set timingInfo’s end time to the coarsened shared current time\n // given global’s relevant settings object’s cross-origin isolated\n // capability.\n // TODO: given global’s relevant settings object’s cross-origin isolated\n // capability?\n timingInfo.endTime = coarsenedSharedCurrentTime()\n\n // 10. Set response’s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 11. Mark resource timing for timingInfo, originalURL, initiatorType,\n // global, and cacheState.\n markResourceTiming(\n timingInfo,\n originalURL,\n initiatorType,\n globalThis,\n cacheState\n )\n}\n\n// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing\nfunction markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) {\n if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) {\n performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState)\n }\n}\n\n// https://fetch.spec.whatwg.org/#abort-fetch\nfunction abortFetch (p, request, responseObject, error) {\n // Note: AbortSignal.reason was added in node v17.2.0\n // which would give us an undefined error to reject with.\n // Remove this once node v16 is no longer supported.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 1. Reject promise with error.\n p.reject(error)\n\n // 2. If request’s body is not null and is readable, then cancel request’s\n // body with error.\n if (request.body != null && isReadable(request.body?.stream)) {\n request.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n\n // 3. If responseObject is null, then return.\n if (responseObject == null) {\n return\n }\n\n // 4. Let response be responseObject’s response.\n const response = responseObject[kState]\n\n // 5. If response’s body is not null and is readable, then error response’s\n // body with error.\n if (response.body != null && isReadable(response.body?.stream)) {\n response.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetching\nfunction fetching ({\n request,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseEndOfBody,\n processResponseConsumeBody,\n useParallelQueue = false,\n dispatcher // undici\n}) {\n // 1. Let taskDestination be null.\n let taskDestination = null\n\n // 2. Let crossOriginIsolatedCapability be false.\n let crossOriginIsolatedCapability = false\n\n // 3. If request’s client is non-null, then:\n if (request.client != null) {\n // 1. Set taskDestination to request’s client’s global object.\n taskDestination = request.client.globalObject\n\n // 2. Set crossOriginIsolatedCapability to request’s client’s cross-origin\n // isolated capability.\n crossOriginIsolatedCapability =\n request.client.crossOriginIsolatedCapability\n }\n\n // 4. If useParallelQueue is true, then set taskDestination to the result of\n // starting a new parallel queue.\n // TODO\n\n // 5. Let timingInfo be a new fetch timing info whose start time and\n // post-redirect start time are the coarsened shared current time given\n // crossOriginIsolatedCapability.\n const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability)\n const timingInfo = createOpaqueTimingInfo({\n startTime: currenTime\n })\n\n // 6. Let fetchParams be a new fetch params whose\n // request is request,\n // timing info is timingInfo,\n // process request body chunk length is processRequestBodyChunkLength,\n // process request end-of-body is processRequestEndOfBody,\n // process response is processResponse,\n // process response consume body is processResponseConsumeBody,\n // process response end-of-body is processResponseEndOfBody,\n // task destination is taskDestination,\n // and cross-origin isolated capability is crossOriginIsolatedCapability.\n const fetchParams = {\n controller: new Fetch(dispatcher),\n request,\n timingInfo,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseConsumeBody,\n processResponseEndOfBody,\n taskDestination,\n crossOriginIsolatedCapability\n }\n\n // 7. If request’s body is a byte sequence, then set request’s body to\n // request’s body as a body.\n // NOTE: Since fetching is only called from fetch, body should already be\n // extracted.\n assert(!request.body || request.body.stream)\n\n // 8. If request’s window is \"client\", then set request’s window to request’s\n // client, if request’s client’s global object is a Window object; otherwise\n // \"no-window\".\n if (request.window === 'client') {\n // TODO: What if request.client is null?\n request.window =\n request.client?.globalObject?.constructor?.name === 'Window'\n ? request.client\n : 'no-window'\n }\n\n // 9. If request’s origin is \"client\", then set request’s origin to request’s\n // client’s origin.\n if (request.origin === 'client') {\n // TODO: What if request.client is null?\n request.origin = request.client?.origin\n }\n\n // 10. If all of the following conditions are true:\n // TODO\n\n // 11. If request’s policy container is \"client\", then:\n if (request.policyContainer === 'client') {\n // 1. If request’s client is non-null, then set request’s policy\n // container to a clone of request’s client’s policy container. [HTML]\n if (request.client != null) {\n request.policyContainer = clonePolicyContainer(\n request.client.policyContainer\n )\n } else {\n // 2. Otherwise, set request’s policy container to a new policy\n // container.\n request.policyContainer = makePolicyContainer()\n }\n }\n\n // 12. If request’s header list does not contain `Accept`, then:\n if (!request.headersList.contains('accept')) {\n // 1. Let value be `*/*`.\n const value = '*/*'\n\n // 2. A user agent should set value to the first matching statement, if\n // any, switching on request’s destination:\n // \"document\"\n // \"frame\"\n // \"iframe\"\n // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`\n // \"image\"\n // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5`\n // \"style\"\n // `text/css,*/*;q=0.1`\n // TODO\n\n // 3. Append `Accept`/value to request’s header list.\n request.headersList.append('accept', value)\n }\n\n // 13. If request’s header list does not contain `Accept-Language`, then\n // user agents should append `Accept-Language`/an appropriate value to\n // request’s header list.\n if (!request.headersList.contains('accept-language')) {\n request.headersList.append('accept-language', '*')\n }\n\n // 14. If request’s priority is null, then use request’s initiator and\n // destination appropriately in setting request’s priority to a\n // user-agent-defined object.\n if (request.priority === null) {\n // TODO\n }\n\n // 15. If request is a subresource request, then:\n if (subresourceSet.has(request.destination)) {\n // TODO\n }\n\n // 16. Run main fetch given fetchParams.\n mainFetch(fetchParams)\n .catch(err => {\n fetchParams.controller.terminate(err)\n })\n\n // 17. Return fetchParam's controller\n return fetchParams.controller\n}\n\n// https://fetch.spec.whatwg.org/#concept-main-fetch\nasync function mainFetch (fetchParams, recursive = false) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. If request’s local-URLs-only flag is set and request’s current URL is\n // not local, then set response to a network error.\n if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) {\n response = makeNetworkError('local URLs only')\n }\n\n // 4. Run report Content Security Policy violations for request.\n // TODO\n\n // 5. Upgrade request to a potentially trustworthy URL, if appropriate.\n tryUpgradeRequestToAPotentiallyTrustworthyURL(request)\n\n // 6. If should request be blocked due to a bad port, should fetching request\n // be blocked as mixed content, or should request be blocked by Content\n // Security Policy returns blocked, then set response to a network error.\n if (requestBadPort(request) === 'blocked') {\n response = makeNetworkError('bad port')\n }\n // TODO: should fetching request be blocked as mixed content?\n // TODO: should request be blocked by Content Security Policy?\n\n // 7. If request’s referrer policy is the empty string, then set request’s\n // referrer policy to request’s policy container’s referrer policy.\n if (request.referrerPolicy === '') {\n request.referrerPolicy = request.policyContainer.referrerPolicy\n }\n\n // 8. If request’s referrer is not \"no-referrer\", then set request’s\n // referrer to the result of invoking determine request’s referrer.\n if (request.referrer !== 'no-referrer') {\n request.referrer = determineRequestsReferrer(request)\n }\n\n // 9. Set request’s current URL’s scheme to \"https\" if all of the following\n // conditions are true:\n // - request’s current URL’s scheme is \"http\"\n // - request’s current URL’s host is a domain\n // - Matching request’s current URL’s host per Known HSTS Host Domain Name\n // Matching results in either a superdomain match with an asserted\n // includeSubDomains directive or a congruent match (with or without an\n // asserted includeSubDomains directive). [HSTS]\n // TODO\n\n // 10. If recursive is false, then run the remaining steps in parallel.\n // TODO\n\n // 11. If response is null, then set response to the result of running\n // the steps corresponding to the first matching statement:\n if (response === null) {\n response = await (async () => {\n const currentURL = requestCurrentURL(request)\n\n if (\n // - request’s current URL’s origin is same origin with request’s origin,\n // and request’s response tainting is \"basic\"\n (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') ||\n // request’s current URL’s scheme is \"data\"\n (currentURL.protocol === 'data:') ||\n // - request’s mode is \"navigate\" or \"websocket\"\n (request.mode === 'navigate' || request.mode === 'websocket')\n ) {\n // 1. Set request’s response tainting to \"basic\".\n request.responseTainting = 'basic'\n\n // 2. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request’s mode is \"same-origin\"\n if (request.mode === 'same-origin') {\n // 1. Return a network error.\n return makeNetworkError('request mode cannot be \"same-origin\"')\n }\n\n // request’s mode is \"no-cors\"\n if (request.mode === 'no-cors') {\n // 1. If request’s redirect mode is not \"follow\", then return a network\n // error.\n if (request.redirect !== 'follow') {\n return makeNetworkError(\n 'redirect mode cannot be \"follow\" for \"no-cors\" request'\n )\n }\n\n // 2. Set request’s response tainting to \"opaque\".\n request.responseTainting = 'opaque'\n\n // 3. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request’s current URL’s scheme is not an HTTP(S) scheme\n if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) {\n // Return a network error.\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // - request’s use-CORS-preflight flag is set\n // - request’s unsafe-request flag is set and either request’s method is\n // not a CORS-safelisted method or CORS-unsafe request-header names with\n // request’s header list is not empty\n // 1. Set request’s response tainting to \"cors\".\n // 2. Let corsWithPreflightResponse be the result of running HTTP fetch\n // given fetchParams and true.\n // 3. If corsWithPreflightResponse is a network error, then clear cache\n // entries using request.\n // 4. Return corsWithPreflightResponse.\n // TODO\n\n // Otherwise\n // 1. Set request’s response tainting to \"cors\".\n request.responseTainting = 'cors'\n\n // 2. Return the result of running HTTP fetch given fetchParams.\n return await httpFetch(fetchParams)\n })()\n }\n\n // 12. If recursive is true, then return response.\n if (recursive) {\n return response\n }\n\n // 13. If response is not a network error and response is not a filtered\n // response, then:\n if (response.status !== 0 && !response.internalResponse) {\n // If request’s response tainting is \"cors\", then:\n if (request.responseTainting === 'cors') {\n // 1. Let headerNames be the result of extracting header list values\n // given `Access-Control-Expose-Headers` and response’s header list.\n // TODO\n // 2. If request’s credentials mode is not \"include\" and headerNames\n // contains `*`, then set response’s CORS-exposed header-name list to\n // all unique header names in response’s header list.\n // TODO\n // 3. Otherwise, if headerNames is not null or failure, then set\n // response’s CORS-exposed header-name list to headerNames.\n // TODO\n }\n\n // Set response to the following filtered response with response as its\n // internal response, depending on request’s response tainting:\n if (request.responseTainting === 'basic') {\n response = filterResponse(response, 'basic')\n } else if (request.responseTainting === 'cors') {\n response = filterResponse(response, 'cors')\n } else if (request.responseTainting === 'opaque') {\n response = filterResponse(response, 'opaque')\n } else {\n assert(false)\n }\n }\n\n // 14. Let internalResponse be response, if response is a network error,\n // and response’s internal response otherwise.\n let internalResponse =\n response.status === 0 ? response : response.internalResponse\n\n // 15. If internalResponse’s URL list is empty, then set it to a clone of\n // request’s URL list.\n if (internalResponse.urlList.length === 0) {\n internalResponse.urlList.push(...request.urlList)\n }\n\n // 16. If request’s timing allow failed flag is unset, then set\n // internalResponse’s timing allow passed flag.\n if (!request.timingAllowFailed) {\n response.timingAllowPassed = true\n }\n\n // 17. If response is not a network error and any of the following returns\n // blocked\n // - should internalResponse to request be blocked as mixed content\n // - should internalResponse to request be blocked by Content Security Policy\n // - should internalResponse to request be blocked due to its MIME type\n // - should internalResponse to request be blocked due to nosniff\n // TODO\n\n // 18. If response’s type is \"opaque\", internalResponse’s status is 206,\n // internalResponse’s range-requested flag is set, and request’s header\n // list does not contain `Range`, then set response and internalResponse\n // to a network error.\n if (\n response.type === 'opaque' &&\n internalResponse.status === 206 &&\n internalResponse.rangeRequested &&\n !request.headers.contains('range')\n ) {\n response = internalResponse = makeNetworkError()\n }\n\n // 19. If response is not a network error and either request’s method is\n // `HEAD` or `CONNECT`, or internalResponse’s status is a null body status,\n // set internalResponse’s body to null and disregard any enqueuing toward\n // it (if any).\n if (\n response.status !== 0 &&\n (request.method === 'HEAD' ||\n request.method === 'CONNECT' ||\n nullBodyStatus.includes(internalResponse.status))\n ) {\n internalResponse.body = null\n fetchParams.controller.dump = true\n }\n\n // 20. If request’s integrity metadata is not the empty string, then:\n if (request.integrity) {\n // 1. Let processBodyError be this step: run fetch finale given fetchParams\n // and a network error.\n const processBodyError = (reason) =>\n fetchFinale(fetchParams, makeNetworkError(reason))\n\n // 2. If request’s response tainting is \"opaque\", or response’s body is null,\n // then run processBodyError and abort these steps.\n if (request.responseTainting === 'opaque' || response.body == null) {\n processBodyError(response.error)\n return\n }\n\n // 3. Let processBody given bytes be these steps:\n const processBody = (bytes) => {\n // 1. If bytes do not match request’s integrity metadata,\n // then run processBodyError and abort these steps. [SRI]\n if (!bytesMatch(bytes, request.integrity)) {\n processBodyError('integrity mismatch')\n return\n }\n\n // 2. Set response’s body to bytes as a body.\n response.body = safelyExtractBody(bytes)[0]\n\n // 3. Run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n\n // 4. Fully read response’s body given processBody and processBodyError.\n await fullyReadBody(response.body, processBody, processBodyError)\n } else {\n // 21. Otherwise, run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n}\n\n// https://fetch.spec.whatwg.org/#concept-scheme-fetch\n// given a fetch params fetchParams\nfunction schemeFetch (fetchParams) {\n // Note: since the connection is destroyed on redirect, which sets fetchParams to a\n // cancelled state, we do not want this condition to trigger *unless* there have been\n // no redirects. See https://github.com/nodejs/undici/issues/1776\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {\n return Promise.resolve(makeAppropriateNetworkError(fetchParams))\n }\n\n // 2. Let request be fetchParams’s request.\n const { request } = fetchParams\n\n const { protocol: scheme } = requestCurrentURL(request)\n\n // 3. Switch on request’s current URL’s scheme and run the associated steps:\n switch (scheme) {\n case 'about:': {\n // If request’s current URL’s path is the string \"blank\", then return a new response\n // whose status message is `OK`, header list is « (`Content-Type`, `text/html;charset=utf-8`) »,\n // and body is the empty byte sequence as a body.\n\n // Otherwise, return a network error.\n return Promise.resolve(makeNetworkError('about scheme is not supported'))\n }\n case 'blob:': {\n if (!resolveObjectURL) {\n resolveObjectURL = require('buffer').resolveObjectURL\n }\n\n // 1. Let blobURLEntry be request’s current URL’s blob URL entry.\n const blobURLEntry = requestCurrentURL(request)\n\n // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56\n // Buffer.resolveObjectURL does not ignore URL queries.\n if (blobURLEntry.search.length !== 0) {\n return Promise.resolve(makeNetworkError('NetworkError when attempting to fetch resource.'))\n }\n\n const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString())\n\n // 2. If request’s method is not `GET`, blobURLEntry is null, or blobURLEntry’s\n // object is not a Blob object, then return a network error.\n if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) {\n return Promise.resolve(makeNetworkError('invalid method'))\n }\n\n // 3. Let bodyWithType be the result of safely extracting blobURLEntry’s object.\n const bodyWithType = safelyExtractBody(blobURLEntryObject)\n\n // 4. Let body be bodyWithType’s body.\n const body = bodyWithType[0]\n\n // 5. Let length be body’s length, serialized and isomorphic encoded.\n const length = isomorphicEncode(`${body.length}`)\n\n // 6. Let type be bodyWithType’s type if it is non-null; otherwise the empty byte sequence.\n const type = bodyWithType[1] ?? ''\n\n // 7. Return a new response whose status message is `OK`, header list is\n // « (`Content-Length`, length), (`Content-Type`, type) », and body is body.\n const response = makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-length', { name: 'Content-Length', value: length }],\n ['content-type', { name: 'Content-Type', value: type }]\n ]\n })\n\n response.body = body\n\n return Promise.resolve(response)\n }\n case 'data:': {\n // 1. Let dataURLStruct be the result of running the\n // data: URL processor on request’s current URL.\n const currentURL = requestCurrentURL(request)\n const dataURLStruct = dataURLProcessor(currentURL)\n\n // 2. If dataURLStruct is failure, then return a\n // network error.\n if (dataURLStruct === 'failure') {\n return Promise.resolve(makeNetworkError('failed to fetch the data URL'))\n }\n\n // 3. Let mimeType be dataURLStruct’s MIME type, serialized.\n const mimeType = serializeAMimeType(dataURLStruct.mimeType)\n\n // 4. Return a response whose status message is `OK`,\n // header list is « (`Content-Type`, mimeType) »,\n // and body is dataURLStruct’s body as a body.\n return Promise.resolve(makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', { name: 'Content-Type', value: mimeType }]\n ],\n body: safelyExtractBody(dataURLStruct.body)[0]\n }))\n }\n case 'file:': {\n // For now, unfortunate as it is, file URLs are left as an exercise for the reader.\n // When in doubt, return a network error.\n return Promise.resolve(makeNetworkError('not implemented... yet...'))\n }\n case 'http:':\n case 'https:': {\n // Return the result of running HTTP fetch given fetchParams.\n\n return httpFetch(fetchParams)\n .catch((err) => makeNetworkError(err))\n }\n default: {\n return Promise.resolve(makeNetworkError('unknown scheme'))\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#finalize-response\nfunction finalizeResponse (fetchParams, response) {\n // 1. Set fetchParams’s request’s done flag.\n fetchParams.request.done = true\n\n // 2, If fetchParams’s process response done is not null, then queue a fetch\n // task to run fetchParams’s process response done given response, with\n // fetchParams’s task destination.\n if (fetchParams.processResponseDone != null) {\n queueMicrotask(() => fetchParams.processResponseDone(response))\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-finale\nfunction fetchFinale (fetchParams, response) {\n // 1. If response is a network error, then:\n if (response.type === 'error') {\n // 1. Set response’s URL list to « fetchParams’s request’s URL list[0] ».\n response.urlList = [fetchParams.request.urlList[0]]\n\n // 2. Set response’s timing info to the result of creating an opaque timing\n // info for fetchParams’s timing info.\n response.timingInfo = createOpaqueTimingInfo({\n startTime: fetchParams.timingInfo.startTime\n })\n }\n\n // 2. Let processResponseEndOfBody be the following steps:\n const processResponseEndOfBody = () => {\n // 1. Set fetchParams’s request’s done flag.\n fetchParams.request.done = true\n\n // If fetchParams’s process response end-of-body is not null,\n // then queue a fetch task to run fetchParams’s process response\n // end-of-body given response with fetchParams’s task destination.\n if (fetchParams.processResponseEndOfBody != null) {\n queueMicrotask(() => fetchParams.processResponseEndOfBody(response))\n }\n }\n\n // 3. If fetchParams’s process response is non-null, then queue a fetch task\n // to run fetchParams’s process response given response, with fetchParams’s\n // task destination.\n if (fetchParams.processResponse != null) {\n queueMicrotask(() => fetchParams.processResponse(response))\n }\n\n // 4. If response’s body is null, then run processResponseEndOfBody.\n if (response.body == null) {\n processResponseEndOfBody()\n } else {\n // 5. Otherwise:\n\n // 1. Let transformStream be a new a TransformStream.\n\n // 2. Let identityTransformAlgorithm be an algorithm which, given chunk,\n // enqueues chunk in transformStream.\n const identityTransformAlgorithm = (chunk, controller) => {\n controller.enqueue(chunk)\n }\n\n // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm\n // and flushAlgorithm set to processResponseEndOfBody.\n const transformStream = new TransformStream({\n start () {},\n transform: identityTransformAlgorithm,\n flush: processResponseEndOfBody\n }, {\n size () {\n return 1\n }\n }, {\n size () {\n return 1\n }\n })\n\n // 4. Set response’s body to the result of piping response’s body through transformStream.\n response.body = { stream: response.body.stream.pipeThrough(transformStream) }\n }\n\n // 6. If fetchParams’s process response consume body is non-null, then:\n if (fetchParams.processResponseConsumeBody != null) {\n // 1. Let processBody given nullOrBytes be this step: run fetchParams’s\n // process response consume body given response and nullOrBytes.\n const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes)\n\n // 2. Let processBodyError be this step: run fetchParams’s process\n // response consume body given response and failure.\n const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure)\n\n // 3. If response’s body is null, then queue a fetch task to run processBody\n // given null, with fetchParams’s task destination.\n if (response.body == null) {\n queueMicrotask(() => processBody(null))\n } else {\n // 4. Otherwise, fully read response’s body given processBody, processBodyError,\n // and fetchParams’s task destination.\n return fullyReadBody(response.body, processBody, processBodyError)\n }\n return Promise.resolve()\n }\n}\n\n// https://fetch.spec.whatwg.org/#http-fetch\nasync function httpFetch (fetchParams) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let actualResponse be null.\n let actualResponse = null\n\n // 4. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 5. If request’s service-workers mode is \"all\", then:\n if (request.serviceWorkers === 'all') {\n // TODO\n }\n\n // 6. If response is null, then:\n if (response === null) {\n // 1. If makeCORSPreflight is true and one of these conditions is true:\n // TODO\n\n // 2. If request’s redirect mode is \"follow\", then set request’s\n // service-workers mode to \"none\".\n if (request.redirect === 'follow') {\n request.serviceWorkers = 'none'\n }\n\n // 3. Set response and actualResponse to the result of running\n // HTTP-network-or-cache fetch given fetchParams.\n actualResponse = response = await httpNetworkOrCacheFetch(fetchParams)\n\n // 4. If request’s response tainting is \"cors\" and a CORS check\n // for request and response returns failure, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n corsCheck(request, response) === 'failure'\n ) {\n return makeNetworkError('cors failure')\n }\n\n // 5. If the TAO check for request and response returns failure, then set\n // request’s timing allow failed flag.\n if (TAOCheck(request, response) === 'failure') {\n request.timingAllowFailed = true\n }\n }\n\n // 7. If either request’s response tainting or response’s type\n // is \"opaque\", and the cross-origin resource policy check with\n // request’s origin, request’s client, request’s destination,\n // and actualResponse returns blocked, then return a network error.\n if (\n (request.responseTainting === 'opaque' || response.type === 'opaque') &&\n crossOriginResourcePolicyCheck(\n request.origin,\n request.client,\n request.destination,\n actualResponse\n ) === 'blocked'\n ) {\n return makeNetworkError('blocked')\n }\n\n // 8. If actualResponse’s status is a redirect status, then:\n if (redirectStatusSet.has(actualResponse.status)) {\n // 1. If actualResponse’s status is not 303, request’s body is not null,\n // and the connection uses HTTP/2, then user agents may, and are even\n // encouraged to, transmit an RST_STREAM frame.\n // See, https://github.com/whatwg/fetch/issues/1288\n if (request.redirect !== 'manual') {\n fetchParams.controller.connection.destroy()\n }\n\n // 2. Switch on request’s redirect mode:\n if (request.redirect === 'error') {\n // Set response to a network error.\n response = makeNetworkError('unexpected redirect')\n } else if (request.redirect === 'manual') {\n // Set response to an opaque-redirect filtered response whose internal\n // response is actualResponse.\n // NOTE(spec): On the web this would return an `opaqueredirect` response,\n // but that doesn't make sense server side.\n // See https://github.com/nodejs/undici/issues/1193.\n response = actualResponse\n } else if (request.redirect === 'follow') {\n // Set response to the result of running HTTP-redirect fetch given\n // fetchParams and response.\n response = await httpRedirectFetch(fetchParams, response)\n } else {\n assert(false)\n }\n }\n\n // 9. Set response’s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 10. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-redirect-fetch\nfunction httpRedirectFetch (fetchParams, response) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let actualResponse be response, if response is not a filtered response,\n // and response’s internal response otherwise.\n const actualResponse = response.internalResponse\n ? response.internalResponse\n : response\n\n // 3. Let locationURL be actualResponse’s location URL given request’s current\n // URL’s fragment.\n let locationURL\n\n try {\n locationURL = responseLocationURL(\n actualResponse,\n requestCurrentURL(request).hash\n )\n\n // 4. If locationURL is null, then return response.\n if (locationURL == null) {\n return response\n }\n } catch (err) {\n // 5. If locationURL is failure, then return a network error.\n return Promise.resolve(makeNetworkError(err))\n }\n\n // 6. If locationURL’s scheme is not an HTTP(S) scheme, then return a network\n // error.\n if (!urlIsHttpHttpsScheme(locationURL)) {\n return Promise.resolve(makeNetworkError('URL scheme must be a HTTP(S) scheme'))\n }\n\n // 7. If request’s redirect count is 20, then return a network error.\n if (request.redirectCount === 20) {\n return Promise.resolve(makeNetworkError('redirect count exceeded'))\n }\n\n // 8. Increase request’s redirect count by 1.\n request.redirectCount += 1\n\n // 9. If request’s mode is \"cors\", locationURL includes credentials, and\n // request’s origin is not same origin with locationURL’s origin, then return\n // a network error.\n if (\n request.mode === 'cors' &&\n (locationURL.username || locationURL.password) &&\n !sameOrigin(request, locationURL)\n ) {\n return Promise.resolve(makeNetworkError('cross origin not allowed for request mode \"cors\"'))\n }\n\n // 10. If request’s response tainting is \"cors\" and locationURL includes\n // credentials, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n (locationURL.username || locationURL.password)\n ) {\n return Promise.resolve(makeNetworkError(\n 'URL cannot contain credentials for request mode \"cors\"'\n ))\n }\n\n // 11. If actualResponse’s status is not 303, request’s body is non-null,\n // and request’s body’s source is null, then return a network error.\n if (\n actualResponse.status !== 303 &&\n request.body != null &&\n request.body.source == null\n ) {\n return Promise.resolve(makeNetworkError())\n }\n\n // 12. If one of the following is true\n // - actualResponse’s status is 301 or 302 and request’s method is `POST`\n // - actualResponse’s status is 303 and request’s method is not `GET` or `HEAD`\n if (\n ([301, 302].includes(actualResponse.status) && request.method === 'POST') ||\n (actualResponse.status === 303 &&\n !GET_OR_HEAD.includes(request.method))\n ) {\n // then:\n // 1. Set request’s method to `GET` and request’s body to null.\n request.method = 'GET'\n request.body = null\n\n // 2. For each headerName of request-body-header name, delete headerName from\n // request’s header list.\n for (const headerName of requestBodyHeader) {\n request.headersList.delete(headerName)\n }\n }\n\n // 13. If request’s current URL’s origin is not same origin with locationURL’s\n // origin, then for each headerName of CORS non-wildcard request-header name,\n // delete headerName from request’s header list.\n if (!sameOrigin(requestCurrentURL(request), locationURL)) {\n // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name\n request.headersList.delete('authorization')\n\n // https://fetch.spec.whatwg.org/#authentication-entries\n request.headersList.delete('proxy-authorization', true)\n\n // \"Cookie\" and \"Host\" are forbidden request-headers, which undici doesn't implement.\n request.headersList.delete('cookie')\n request.headersList.delete('host')\n }\n\n // 14. If request’s body is non-null, then set request’s body to the first return\n // value of safely extracting request’s body’s source.\n if (request.body != null) {\n assert(request.body.source != null)\n request.body = safelyExtractBody(request.body.source)[0]\n }\n\n // 15. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 16. Set timingInfo’s redirect end time and post-redirect start time to the\n // coarsened shared current time given fetchParams’s cross-origin isolated\n // capability.\n timingInfo.redirectEndTime = timingInfo.postRedirectStartTime =\n coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)\n\n // 17. If timingInfo’s redirect start time is 0, then set timingInfo’s\n // redirect start time to timingInfo’s start time.\n if (timingInfo.redirectStartTime === 0) {\n timingInfo.redirectStartTime = timingInfo.startTime\n }\n\n // 18. Append locationURL to request’s URL list.\n request.urlList.push(locationURL)\n\n // 19. Invoke set request’s referrer policy on redirect on request and\n // actualResponse.\n setRequestReferrerPolicyOnRedirect(request, actualResponse)\n\n // 20. Return the result of running main fetch given fetchParams and true.\n return mainFetch(fetchParams, true)\n}\n\n// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\nasync function httpNetworkOrCacheFetch (\n fetchParams,\n isAuthenticationFetch = false,\n isNewConnectionFetch = false\n) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let httpFetchParams be null.\n let httpFetchParams = null\n\n // 3. Let httpRequest be null.\n let httpRequest = null\n\n // 4. Let response be null.\n let response = null\n\n // 5. Let storedResponse be null.\n // TODO: cache\n\n // 6. Let httpCache be null.\n const httpCache = null\n\n // 7. Let the revalidatingFlag be unset.\n const revalidatingFlag = false\n\n // 8. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If request’s window is \"no-window\" and request’s redirect mode is\n // \"error\", then set httpFetchParams to fetchParams and httpRequest to\n // request.\n if (request.window === 'no-window' && request.redirect === 'error') {\n httpFetchParams = fetchParams\n httpRequest = request\n } else {\n // Otherwise:\n\n // 1. Set httpRequest to a clone of request.\n httpRequest = makeRequest(request)\n\n // 2. Set httpFetchParams to a copy of fetchParams.\n httpFetchParams = { ...fetchParams }\n\n // 3. Set httpFetchParams’s request to httpRequest.\n httpFetchParams.request = httpRequest\n }\n\n // 3. Let includeCredentials be true if one of\n const includeCredentials =\n request.credentials === 'include' ||\n (request.credentials === 'same-origin' &&\n request.responseTainting === 'basic')\n\n // 4. Let contentLength be httpRequest’s body’s length, if httpRequest’s\n // body is non-null; otherwise null.\n const contentLength = httpRequest.body ? httpRequest.body.length : null\n\n // 5. Let contentLengthHeaderValue be null.\n let contentLengthHeaderValue = null\n\n // 6. If httpRequest’s body is null and httpRequest’s method is `POST` or\n // `PUT`, then set contentLengthHeaderValue to `0`.\n if (\n httpRequest.body == null &&\n ['POST', 'PUT'].includes(httpRequest.method)\n ) {\n contentLengthHeaderValue = '0'\n }\n\n // 7. If contentLength is non-null, then set contentLengthHeaderValue to\n // contentLength, serialized and isomorphic encoded.\n if (contentLength != null) {\n contentLengthHeaderValue = isomorphicEncode(`${contentLength}`)\n }\n\n // 8. If contentLengthHeaderValue is non-null, then append\n // `Content-Length`/contentLengthHeaderValue to httpRequest’s header\n // list.\n if (contentLengthHeaderValue != null) {\n httpRequest.headersList.append('content-length', contentLengthHeaderValue)\n }\n\n // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`,\n // contentLengthHeaderValue) to httpRequest’s header list.\n\n // 10. If contentLength is non-null and httpRequest’s keepalive is true,\n // then:\n if (contentLength != null && httpRequest.keepalive) {\n // NOTE: keepalive is a noop outside of browser context.\n }\n\n // 11. If httpRequest’s referrer is a URL, then append\n // `Referer`/httpRequest’s referrer, serialized and isomorphic encoded,\n // to httpRequest’s header list.\n if (httpRequest.referrer instanceof URL) {\n httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href))\n }\n\n // 12. Append a request `Origin` header for httpRequest.\n appendRequestOriginHeader(httpRequest)\n\n // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA]\n appendFetchMetadata(httpRequest)\n\n // 14. If httpRequest’s header list does not contain `User-Agent`, then\n // user agents should append `User-Agent`/default `User-Agent` value to\n // httpRequest’s header list.\n if (!httpRequest.headersList.contains('user-agent')) {\n httpRequest.headersList.append('user-agent', typeof esbuildDetection === 'undefined' ? 'undici' : 'node')\n }\n\n // 15. If httpRequest’s cache mode is \"default\" and httpRequest’s header\n // list contains `If-Modified-Since`, `If-None-Match`,\n // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set\n // httpRequest’s cache mode to \"no-store\".\n if (\n httpRequest.cache === 'default' &&\n (httpRequest.headersList.contains('if-modified-since') ||\n httpRequest.headersList.contains('if-none-match') ||\n httpRequest.headersList.contains('if-unmodified-since') ||\n httpRequest.headersList.contains('if-match') ||\n httpRequest.headersList.contains('if-range'))\n ) {\n httpRequest.cache = 'no-store'\n }\n\n // 16. If httpRequest’s cache mode is \"no-cache\", httpRequest’s prevent\n // no-cache cache-control header modification flag is unset, and\n // httpRequest’s header list does not contain `Cache-Control`, then append\n // `Cache-Control`/`max-age=0` to httpRequest’s header list.\n if (\n httpRequest.cache === 'no-cache' &&\n !httpRequest.preventNoCacheCacheControlHeaderModification &&\n !httpRequest.headersList.contains('cache-control')\n ) {\n httpRequest.headersList.append('cache-control', 'max-age=0')\n }\n\n // 17. If httpRequest’s cache mode is \"no-store\" or \"reload\", then:\n if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') {\n // 1. If httpRequest’s header list does not contain `Pragma`, then append\n // `Pragma`/`no-cache` to httpRequest’s header list.\n if (!httpRequest.headersList.contains('pragma')) {\n httpRequest.headersList.append('pragma', 'no-cache')\n }\n\n // 2. If httpRequest’s header list does not contain `Cache-Control`,\n // then append `Cache-Control`/`no-cache` to httpRequest’s header list.\n if (!httpRequest.headersList.contains('cache-control')) {\n httpRequest.headersList.append('cache-control', 'no-cache')\n }\n }\n\n // 18. If httpRequest’s header list contains `Range`, then append\n // `Accept-Encoding`/`identity` to httpRequest’s header list.\n if (httpRequest.headersList.contains('range')) {\n httpRequest.headersList.append('accept-encoding', 'identity')\n }\n\n // 19. Modify httpRequest’s header list per HTTP. Do not append a given\n // header if httpRequest’s header list contains that header’s name.\n // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129\n if (!httpRequest.headersList.contains('accept-encoding')) {\n if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) {\n httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate')\n } else {\n httpRequest.headersList.append('accept-encoding', 'gzip, deflate')\n }\n }\n\n httpRequest.headersList.delete('host')\n\n // 20. If includeCredentials is true, then:\n if (includeCredentials) {\n // 1. If the user agent is not configured to block cookies for httpRequest\n // (see section 7 of [COOKIES]), then:\n // TODO: credentials\n // 2. If httpRequest’s header list does not contain `Authorization`, then:\n // TODO: credentials\n }\n\n // 21. If there’s a proxy-authentication entry, use it as appropriate.\n // TODO: proxy-authentication\n\n // 22. Set httpCache to the result of determining the HTTP cache\n // partition, given httpRequest.\n // TODO: cache\n\n // 23. If httpCache is null, then set httpRequest’s cache mode to\n // \"no-store\".\n if (httpCache == null) {\n httpRequest.cache = 'no-store'\n }\n\n // 24. If httpRequest’s cache mode is neither \"no-store\" nor \"reload\",\n // then:\n if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') {\n // TODO: cache\n }\n\n // 9. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n\n // 10. If response is null, then:\n if (response == null) {\n // 1. If httpRequest’s cache mode is \"only-if-cached\", then return a\n // network error.\n if (httpRequest.mode === 'only-if-cached') {\n return makeNetworkError('only if cached')\n }\n\n // 2. Let forwardResponse be the result of running HTTP-network fetch\n // given httpFetchParams, includeCredentials, and isNewConnectionFetch.\n const forwardResponse = await httpNetworkFetch(\n httpFetchParams,\n includeCredentials,\n isNewConnectionFetch\n )\n\n // 3. If httpRequest’s method is unsafe and forwardResponse’s status is\n // in the range 200 to 399, inclusive, invalidate appropriate stored\n // responses in httpCache, as per the \"Invalidation\" chapter of HTTP\n // Caching, and set storedResponse to null. [HTTP-CACHING]\n if (\n !safeMethodsSet.has(httpRequest.method) &&\n forwardResponse.status >= 200 &&\n forwardResponse.status <= 399\n ) {\n // TODO: cache\n }\n\n // 4. If the revalidatingFlag is set and forwardResponse’s status is 304,\n // then:\n if (revalidatingFlag && forwardResponse.status === 304) {\n // TODO: cache\n }\n\n // 5. If response is null, then:\n if (response == null) {\n // 1. Set response to forwardResponse.\n response = forwardResponse\n\n // 2. Store httpRequest and forwardResponse in httpCache, as per the\n // \"Storing Responses in Caches\" chapter of HTTP Caching. [HTTP-CACHING]\n // TODO: cache\n }\n }\n\n // 11. Set response’s URL list to a clone of httpRequest’s URL list.\n response.urlList = [...httpRequest.urlList]\n\n // 12. If httpRequest’s header list contains `Range`, then set response’s\n // range-requested flag.\n if (httpRequest.headersList.contains('range')) {\n response.rangeRequested = true\n }\n\n // 13. Set response’s request-includes-credentials to includeCredentials.\n response.requestIncludesCredentials = includeCredentials\n\n // 14. If response’s status is 401, httpRequest’s response tainting is not\n // \"cors\", includeCredentials is true, and request’s window is an environment\n // settings object, then:\n // TODO\n\n // 15. If response’s status is 407, then:\n if (response.status === 407) {\n // 1. If request’s window is \"no-window\", then return a network error.\n if (request.window === 'no-window') {\n return makeNetworkError()\n }\n\n // 2. ???\n\n // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 4. Prompt the end user as appropriate in request’s window and store\n // the result as a proxy-authentication entry. [HTTP-AUTH]\n // TODO: Invoke some kind of callback?\n\n // 5. Set response to the result of running HTTP-network-or-cache fetch given\n // fetchParams.\n // TODO\n return makeNetworkError('proxy authentication required')\n }\n\n // 16. If all of the following are true\n if (\n // response’s status is 421\n response.status === 421 &&\n // isNewConnectionFetch is false\n !isNewConnectionFetch &&\n // request’s body is null, or request’s body is non-null and request’s body’s source is non-null\n (request.body == null || request.body.source != null)\n ) {\n // then:\n\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Set response to the result of running HTTP-network-or-cache\n // fetch given fetchParams, isAuthenticationFetch, and true.\n\n // TODO (spec): The spec doesn't specify this but we need to cancel\n // the active response before we can start a new one.\n // https://github.com/whatwg/fetch/issues/1293\n fetchParams.controller.connection.destroy()\n\n response = await httpNetworkOrCacheFetch(\n fetchParams,\n isAuthenticationFetch,\n true\n )\n }\n\n // 17. If isAuthenticationFetch is true, then create an authentication entry\n if (isAuthenticationFetch) {\n // TODO\n }\n\n // 18. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-network-fetch\nasync function httpNetworkFetch (\n fetchParams,\n includeCredentials = false,\n forceNewConnection = false\n) {\n assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed)\n\n fetchParams.controller.connection = {\n abort: null,\n destroyed: false,\n destroy (err) {\n if (!this.destroyed) {\n this.destroyed = true\n this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError'))\n }\n }\n }\n\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 4. Let httpCache be the result of determining the HTTP cache partition,\n // given request.\n // TODO: cache\n const httpCache = null\n\n // 5. If httpCache is null, then set request’s cache mode to \"no-store\".\n if (httpCache == null) {\n request.cache = 'no-store'\n }\n\n // 6. Let networkPartitionKey be the result of determining the network\n // partition key given request.\n // TODO\n\n // 7. Let newConnection be \"yes\" if forceNewConnection is true; otherwise\n // \"no\".\n const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars\n\n // 8. Switch on request’s mode:\n if (request.mode === 'websocket') {\n // Let connection be the result of obtaining a WebSocket connection,\n // given request’s current URL.\n // TODO\n } else {\n // Let connection be the result of obtaining a connection, given\n // networkPartitionKey, request’s current URL’s origin,\n // includeCredentials, and forceNewConnection.\n // TODO\n }\n\n // 9. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If connection is failure, then return a network error.\n\n // 2. Set timingInfo’s final connection timing info to the result of\n // calling clamp and coarsen connection timing info with connection’s\n // timing info, timingInfo’s post-redirect start time, and fetchParams’s\n // cross-origin isolated capability.\n\n // 3. If connection is not an HTTP/2 connection, request’s body is non-null,\n // and request’s body’s source is null, then append (`Transfer-Encoding`,\n // `chunked`) to request’s header list.\n\n // 4. Set timingInfo’s final network-request start time to the coarsened\n // shared current time given fetchParams’s cross-origin isolated\n // capability.\n\n // 5. Set response to the result of making an HTTP request over connection\n // using request with the following caveats:\n\n // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS]\n // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH]\n\n // - If request’s body is non-null, and request’s body’s source is null,\n // then the user agent may have a buffer of up to 64 kibibytes and store\n // a part of request’s body in that buffer. If the user agent reads from\n // request’s body beyond that buffer’s size and the user agent needs to\n // resend request, then instead return a network error.\n\n // - Set timingInfo’s final network-response start time to the coarsened\n // shared current time given fetchParams’s cross-origin isolated capability,\n // immediately after the user agent’s HTTP parser receives the first byte\n // of the response (e.g., frame header bytes for HTTP/2 or response status\n // line for HTTP/1.x).\n\n // - Wait until all the headers are transmitted.\n\n // - Any responses whose status is in the range 100 to 199, inclusive,\n // and is not 101, are to be ignored, except for the purposes of setting\n // timingInfo’s final network-response start time above.\n\n // - If request’s header list contains `Transfer-Encoding`/`chunked` and\n // response is transferred via HTTP/1.0 or older, then return a network\n // error.\n\n // - If the HTTP request results in a TLS client certificate dialog, then:\n\n // 1. If request’s window is an environment settings object, make the\n // dialog available in request’s window.\n\n // 2. Otherwise, return a network error.\n\n // To transmit request’s body body, run these steps:\n let requestBody = null\n // 1. If body is null and fetchParams’s process request end-of-body is\n // non-null, then queue a fetch task given fetchParams’s process request\n // end-of-body and fetchParams’s task destination.\n if (request.body == null && fetchParams.processRequestEndOfBody) {\n queueMicrotask(() => fetchParams.processRequestEndOfBody())\n } else if (request.body != null) {\n // 2. Otherwise, if body is non-null:\n\n // 1. Let processBodyChunk given bytes be these steps:\n const processBodyChunk = async function * (bytes) {\n // 1. If the ongoing fetch is terminated, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. Run this step in parallel: transmit bytes.\n yield bytes\n\n // 3. If fetchParams’s process request body is non-null, then run\n // fetchParams’s process request body given bytes’s length.\n fetchParams.processRequestBodyChunkLength?.(bytes.byteLength)\n }\n\n // 2. Let processEndOfBody be these steps:\n const processEndOfBody = () => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If fetchParams’s process request end-of-body is non-null,\n // then run fetchParams’s process request end-of-body.\n if (fetchParams.processRequestEndOfBody) {\n fetchParams.processRequestEndOfBody()\n }\n }\n\n // 3. Let processBodyError given e be these steps:\n const processBodyError = (e) => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If e is an \"AbortError\" DOMException, then abort fetchParams’s controller.\n if (e.name === 'AbortError') {\n fetchParams.controller.abort()\n } else {\n fetchParams.controller.terminate(e)\n }\n }\n\n // 4. Incrementally read request’s body given processBodyChunk, processEndOfBody,\n // processBodyError, and fetchParams’s task destination.\n requestBody = (async function * () {\n try {\n for await (const bytes of request.body.stream) {\n yield * processBodyChunk(bytes)\n }\n processEndOfBody()\n } catch (err) {\n processBodyError(err)\n }\n })()\n }\n\n try {\n // socket is only provided for websockets\n const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody })\n\n if (socket) {\n response = makeResponse({ status, statusText, headersList, socket })\n } else {\n const iterator = body[Symbol.asyncIterator]()\n fetchParams.controller.next = () => iterator.next()\n\n response = makeResponse({ status, statusText, headersList })\n }\n } catch (err) {\n // 10. If aborted, then:\n if (err.name === 'AbortError') {\n // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n fetchParams.controller.connection.destroy()\n\n // 2. Return the appropriate network error for fetchParams.\n return makeAppropriateNetworkError(fetchParams, err)\n }\n\n return makeNetworkError(err)\n }\n\n // 11. Let pullAlgorithm be an action that resumes the ongoing fetch\n // if it is suspended.\n const pullAlgorithm = () => {\n fetchParams.controller.resume()\n }\n\n // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams’s\n // controller with reason, given reason.\n const cancelAlgorithm = (reason) => {\n fetchParams.controller.abort(reason)\n }\n\n // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by\n // the user agent.\n // TODO\n\n // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object\n // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent.\n // TODO\n\n // 15. Let stream be a new ReadableStream.\n // 16. Set up stream with pullAlgorithm set to pullAlgorithm,\n // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to\n // highWaterMark, and sizeAlgorithm set to sizeAlgorithm.\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n const stream = new ReadableStream(\n {\n async start (controller) {\n fetchParams.controller.controller = controller\n },\n async pull (controller) {\n await pullAlgorithm(controller)\n },\n async cancel (reason) {\n await cancelAlgorithm(reason)\n }\n },\n {\n highWaterMark: 0,\n size () {\n return 1\n }\n }\n )\n\n // 17. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. Set response’s body to a new body whose stream is stream.\n response.body = { stream }\n\n // 2. If response is not a network error and request’s cache mode is\n // not \"no-store\", then update response in httpCache for request.\n // TODO\n\n // 3. If includeCredentials is true and the user agent is not configured\n // to block cookies for request (see section 7 of [COOKIES]), then run the\n // \"set-cookie-string\" parsing algorithm (see section 5.2 of [COOKIES]) on\n // the value of each header whose name is a byte-case-insensitive match for\n // `Set-Cookie` in response’s header list, if any, and request’s current URL.\n // TODO\n\n // 18. If aborted, then:\n // TODO\n\n // 19. Run these steps in parallel:\n\n // 1. Run these steps, but abort when fetchParams is canceled:\n fetchParams.controller.on('terminated', onAborted)\n fetchParams.controller.resume = async () => {\n // 1. While true\n while (true) {\n // 1-3. See onData...\n\n // 4. Set bytes to the result of handling content codings given\n // codings and bytes.\n let bytes\n let isFailure\n try {\n const { done, value } = await fetchParams.controller.next()\n\n if (isAborted(fetchParams)) {\n break\n }\n\n bytes = done ? undefined : value\n } catch (err) {\n if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {\n // zlib doesn't like empty streams.\n bytes = undefined\n } else {\n bytes = err\n\n // err may be propagated from the result of calling readablestream.cancel,\n // which might not be an error. https://github.com/nodejs/undici/issues/2009\n isFailure = true\n }\n }\n\n if (bytes === undefined) {\n // 2. Otherwise, if the bytes transmission for response’s message\n // body is done normally and stream is readable, then close\n // stream, finalize response for fetchParams and response, and\n // abort these in-parallel steps.\n readableStreamClose(fetchParams.controller.controller)\n\n finalizeResponse(fetchParams, response)\n\n return\n }\n\n // 5. Increase timingInfo’s decoded body size by bytes’s length.\n timingInfo.decodedBodySize += bytes?.byteLength ?? 0\n\n // 6. If bytes is failure, then terminate fetchParams’s controller.\n if (isFailure) {\n fetchParams.controller.terminate(bytes)\n return\n }\n\n // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes\n // into stream.\n fetchParams.controller.controller.enqueue(new Uint8Array(bytes))\n\n // 8. If stream is errored, then terminate the ongoing fetch.\n if (isErrored(stream)) {\n fetchParams.controller.terminate()\n return\n }\n\n // 9. If stream doesn’t need more data ask the user agent to suspend\n // the ongoing fetch.\n if (!fetchParams.controller.controller.desiredSize) {\n return\n }\n }\n }\n\n // 2. If aborted, then:\n function onAborted (reason) {\n // 2. If fetchParams is aborted, then:\n if (isAborted(fetchParams)) {\n // 1. Set response’s aborted flag.\n response.aborted = true\n\n // 2. If stream is readable, then error stream with the result of\n // deserialize a serialized abort reason given fetchParams’s\n // controller’s serialized abort reason and an\n // implementation-defined realm.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(\n fetchParams.controller.serializedAbortReason\n )\n }\n } else {\n // 3. Otherwise, if stream is readable, error stream with a TypeError.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(new TypeError('terminated', {\n cause: isErrorLike(reason) ? reason : undefined\n }))\n }\n }\n\n // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so.\n fetchParams.controller.connection.destroy()\n }\n\n // 20. Return response.\n return response\n\n async function dispatch ({ body }) {\n const url = requestCurrentURL(request)\n /** @type {import('../..').Agent} */\n const agent = fetchParams.controller.dispatcher\n\n return new Promise((resolve, reject) => agent.dispatch(\n {\n path: url.pathname + url.search,\n origin: url.origin,\n method: request.method,\n body: fetchParams.controller.dispatcher.isMockActive ? request.body && (request.body.source || request.body.stream) : body,\n headers: request.headersList.entries,\n maxRedirections: 0,\n upgrade: request.mode === 'websocket' ? 'websocket' : undefined\n },\n {\n body: null,\n abort: null,\n\n onConnect (abort) {\n // TODO (fix): Do we need connection here?\n const { connection } = fetchParams.controller\n\n if (connection.destroyed) {\n abort(new DOMException('The operation was aborted.', 'AbortError'))\n } else {\n fetchParams.controller.on('terminated', abort)\n this.abort = connection.abort = abort\n }\n },\n\n onHeaders (status, headersList, resume, statusText) {\n if (status < 200) {\n return\n }\n\n let codings = []\n let location = ''\n\n const headers = new Headers()\n\n // For H2, the headers are a plain JS object\n // We distinguish between them and iterate accordingly\n if (Array.isArray(headersList)) {\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim())\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers[kHeadersList].append(key, val)\n }\n } else {\n const keys = Object.keys(headersList)\n for (const key of keys) {\n const val = headersList[key]\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse()\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers[kHeadersList].append(key, val)\n }\n }\n\n this.body = new Readable({ read: resume })\n\n const decoders = []\n\n const willFollow = request.redirect === 'follow' &&\n location &&\n redirectStatusSet.has(status)\n\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding\n if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) {\n for (const coding of codings) {\n // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2\n if (coding === 'x-gzip' || coding === 'gzip') {\n decoders.push(zlib.createGunzip({\n // Be less strict when decoding compressed responses, since sometimes\n // servers send slightly invalid responses that are still accepted\n // by common browsers.\n // Always using Z_SYNC_FLUSH is what cURL does.\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n }))\n } else if (coding === 'deflate') {\n decoders.push(zlib.createInflate())\n } else if (coding === 'br') {\n decoders.push(zlib.createBrotliDecompress())\n } else {\n decoders.length = 0\n break\n }\n }\n }\n\n resolve({\n status,\n statusText,\n headersList: headers[kHeadersList],\n body: decoders.length\n ? pipeline(this.body, ...decoders, () => { })\n : this.body.on('error', () => {})\n })\n\n return true\n },\n\n onData (chunk) {\n if (fetchParams.controller.dump) {\n return\n }\n\n // 1. If one or more bytes have been transmitted from response’s\n // message body, then:\n\n // 1. Let bytes be the transmitted bytes.\n const bytes = chunk\n\n // 2. Let codings be the result of extracting header list values\n // given `Content-Encoding` and response’s header list.\n // See pullAlgorithm.\n\n // 3. Increase timingInfo’s encoded body size by bytes’s length.\n timingInfo.encodedBodySize += bytes.byteLength\n\n // 4. See pullAlgorithm...\n\n return this.body.push(bytes)\n },\n\n onComplete () {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n fetchParams.controller.ended = true\n\n this.body.push(null)\n },\n\n onError (error) {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n this.body?.destroy(error)\n\n fetchParams.controller.terminate(error)\n\n reject(error)\n },\n\n onUpgrade (status, headersList, socket) {\n if (status !== 101) {\n return\n }\n\n const headers = new Headers()\n\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n headers[kHeadersList].append(key, val)\n }\n\n resolve({\n status,\n statusText: STATUS_CODES[status],\n headersList: headers[kHeadersList],\n socket\n })\n\n return true\n }\n }\n ))\n }\n}\n\nmodule.exports = {\n fetch,\n Fetch,\n fetching,\n finalizeAndReportTiming\n}\n","'use strict'\n\nmodule.exports = {\n kState: Symbol('FileReader state'),\n kResult: Symbol('FileReader result'),\n kError: Symbol('FileReader error'),\n kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'),\n kEvents: Symbol('FileReader events'),\n kAborted: Symbol('FileReader aborted')\n}\n","'use strict'\n\nconst { webidl } = require('../fetch/webidl')\n\nconst kState = Symbol('ProgressEvent state')\n\n/**\n * @see https://xhr.spec.whatwg.org/#progressevent\n */\nclass ProgressEvent extends Event {\n constructor (type, eventInitDict = {}) {\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {})\n\n super(type, eventInitDict)\n\n this[kState] = {\n lengthComputable: eventInitDict.lengthComputable,\n loaded: eventInitDict.loaded,\n total: eventInitDict.total\n }\n }\n\n get lengthComputable () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].lengthComputable\n }\n\n get loaded () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].loaded\n }\n\n get total () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].total\n }\n}\n\nwebidl.converters.ProgressEventInit = webidl.dictionaryConverter([\n {\n key: 'lengthComputable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'loaded',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'total',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n])\n\nmodule.exports = {\n ProgressEvent\n}\n","'use strict'\n\n/**\n * @see https://encoding.spec.whatwg.org/#concept-encoding-get\n * @param {string|undefined} label\n */\nfunction getEncoding (label) {\n if (!label) {\n return 'failure'\n }\n\n // 1. Remove any leading and trailing ASCII whitespace from label.\n // 2. If label is an ASCII case-insensitive match for any of the\n // labels listed in the table below, then return the\n // corresponding encoding; otherwise return failure.\n switch (label.trim().toLowerCase()) {\n case 'unicode-1-1-utf-8':\n case 'unicode11utf8':\n case 'unicode20utf8':\n case 'utf-8':\n case 'utf8':\n case 'x-unicode20utf8':\n return 'UTF-8'\n case '866':\n case 'cp866':\n case 'csibm866':\n case 'ibm866':\n return 'IBM866'\n case 'csisolatin2':\n case 'iso-8859-2':\n case 'iso-ir-101':\n case 'iso8859-2':\n case 'iso88592':\n case 'iso_8859-2':\n case 'iso_8859-2:1987':\n case 'l2':\n case 'latin2':\n return 'ISO-8859-2'\n case 'csisolatin3':\n case 'iso-8859-3':\n case 'iso-ir-109':\n case 'iso8859-3':\n case 'iso88593':\n case 'iso_8859-3':\n case 'iso_8859-3:1988':\n case 'l3':\n case 'latin3':\n return 'ISO-8859-3'\n case 'csisolatin4':\n case 'iso-8859-4':\n case 'iso-ir-110':\n case 'iso8859-4':\n case 'iso88594':\n case 'iso_8859-4':\n case 'iso_8859-4:1988':\n case 'l4':\n case 'latin4':\n return 'ISO-8859-4'\n case 'csisolatincyrillic':\n case 'cyrillic':\n case 'iso-8859-5':\n case 'iso-ir-144':\n case 'iso8859-5':\n case 'iso88595':\n case 'iso_8859-5':\n case 'iso_8859-5:1988':\n return 'ISO-8859-5'\n case 'arabic':\n case 'asmo-708':\n case 'csiso88596e':\n case 'csiso88596i':\n case 'csisolatinarabic':\n case 'ecma-114':\n case 'iso-8859-6':\n case 'iso-8859-6-e':\n case 'iso-8859-6-i':\n case 'iso-ir-127':\n case 'iso8859-6':\n case 'iso88596':\n case 'iso_8859-6':\n case 'iso_8859-6:1987':\n return 'ISO-8859-6'\n case 'csisolatingreek':\n case 'ecma-118':\n case 'elot_928':\n case 'greek':\n case 'greek8':\n case 'iso-8859-7':\n case 'iso-ir-126':\n case 'iso8859-7':\n case 'iso88597':\n case 'iso_8859-7':\n case 'iso_8859-7:1987':\n case 'sun_eu_greek':\n return 'ISO-8859-7'\n case 'csiso88598e':\n case 'csisolatinhebrew':\n case 'hebrew':\n case 'iso-8859-8':\n case 'iso-8859-8-e':\n case 'iso-ir-138':\n case 'iso8859-8':\n case 'iso88598':\n case 'iso_8859-8':\n case 'iso_8859-8:1988':\n case 'visual':\n return 'ISO-8859-8'\n case 'csiso88598i':\n case 'iso-8859-8-i':\n case 'logical':\n return 'ISO-8859-8-I'\n case 'csisolatin6':\n case 'iso-8859-10':\n case 'iso-ir-157':\n case 'iso8859-10':\n case 'iso885910':\n case 'l6':\n case 'latin6':\n return 'ISO-8859-10'\n case 'iso-8859-13':\n case 'iso8859-13':\n case 'iso885913':\n return 'ISO-8859-13'\n case 'iso-8859-14':\n case 'iso8859-14':\n case 'iso885914':\n return 'ISO-8859-14'\n case 'csisolatin9':\n case 'iso-8859-15':\n case 'iso8859-15':\n case 'iso885915':\n case 'iso_8859-15':\n case 'l9':\n return 'ISO-8859-15'\n case 'iso-8859-16':\n return 'ISO-8859-16'\n case 'cskoi8r':\n case 'koi':\n case 'koi8':\n case 'koi8-r':\n case 'koi8_r':\n return 'KOI8-R'\n case 'koi8-ru':\n case 'koi8-u':\n return 'KOI8-U'\n case 'csmacintosh':\n case 'mac':\n case 'macintosh':\n case 'x-mac-roman':\n return 'macintosh'\n case 'iso-8859-11':\n case 'iso8859-11':\n case 'iso885911':\n case 'tis-620':\n case 'windows-874':\n return 'windows-874'\n case 'cp1250':\n case 'windows-1250':\n case 'x-cp1250':\n return 'windows-1250'\n case 'cp1251':\n case 'windows-1251':\n case 'x-cp1251':\n return 'windows-1251'\n case 'ansi_x3.4-1968':\n case 'ascii':\n case 'cp1252':\n case 'cp819':\n case 'csisolatin1':\n case 'ibm819':\n case 'iso-8859-1':\n case 'iso-ir-100':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'iso_8859-1:1987':\n case 'l1':\n case 'latin1':\n case 'us-ascii':\n case 'windows-1252':\n case 'x-cp1252':\n return 'windows-1252'\n case 'cp1253':\n case 'windows-1253':\n case 'x-cp1253':\n return 'windows-1253'\n case 'cp1254':\n case 'csisolatin5':\n case 'iso-8859-9':\n case 'iso-ir-148':\n case 'iso8859-9':\n case 'iso88599':\n case 'iso_8859-9':\n case 'iso_8859-9:1989':\n case 'l5':\n case 'latin5':\n case 'windows-1254':\n case 'x-cp1254':\n return 'windows-1254'\n case 'cp1255':\n case 'windows-1255':\n case 'x-cp1255':\n return 'windows-1255'\n case 'cp1256':\n case 'windows-1256':\n case 'x-cp1256':\n return 'windows-1256'\n case 'cp1257':\n case 'windows-1257':\n case 'x-cp1257':\n return 'windows-1257'\n case 'cp1258':\n case 'windows-1258':\n case 'x-cp1258':\n return 'windows-1258'\n case 'x-mac-cyrillic':\n case 'x-mac-ukrainian':\n return 'x-mac-cyrillic'\n case 'chinese':\n case 'csgb2312':\n case 'csiso58gb231280':\n case 'gb2312':\n case 'gb_2312':\n case 'gb_2312-80':\n case 'gbk':\n case 'iso-ir-58':\n case 'x-gbk':\n return 'GBK'\n case 'gb18030':\n return 'gb18030'\n case 'big5':\n case 'big5-hkscs':\n case 'cn-big5':\n case 'csbig5':\n case 'x-x-big5':\n return 'Big5'\n case 'cseucpkdfmtjapanese':\n case 'euc-jp':\n case 'x-euc-jp':\n return 'EUC-JP'\n case 'csiso2022jp':\n case 'iso-2022-jp':\n return 'ISO-2022-JP'\n case 'csshiftjis':\n case 'ms932':\n case 'ms_kanji':\n case 'shift-jis':\n case 'shift_jis':\n case 'sjis':\n case 'windows-31j':\n case 'x-sjis':\n return 'Shift_JIS'\n case 'cseuckr':\n case 'csksc56011987':\n case 'euc-kr':\n case 'iso-ir-149':\n case 'korean':\n case 'ks_c_5601-1987':\n case 'ks_c_5601-1989':\n case 'ksc5601':\n case 'ksc_5601':\n case 'windows-949':\n return 'EUC-KR'\n case 'csiso2022kr':\n case 'hz-gb-2312':\n case 'iso-2022-cn':\n case 'iso-2022-cn-ext':\n case 'iso-2022-kr':\n case 'replacement':\n return 'replacement'\n case 'unicodefffe':\n case 'utf-16be':\n return 'UTF-16BE'\n case 'csunicode':\n case 'iso-10646-ucs-2':\n case 'ucs-2':\n case 'unicode':\n case 'unicodefeff':\n case 'utf-16':\n case 'utf-16le':\n return 'UTF-16LE'\n case 'x-user-defined':\n return 'x-user-defined'\n default: return 'failure'\n }\n}\n\nmodule.exports = {\n getEncoding\n}\n","'use strict'\n\nconst {\n kState,\n kError,\n kResult,\n kAborted,\n kLastProgressEventFired\n} = require('./symbols')\nconst { ProgressEvent } = require('./progressevent')\nconst { getEncoding } = require('./encoding')\nconst { DOMException } = require('../fetch/constants')\nconst { serializeAMimeType, parseMIMEType } = require('../fetch/dataURL')\nconst { types } = require('util')\nconst { StringDecoder } = require('string_decoder')\nconst { btoa } = require('buffer')\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#readOperation\n * @param {import('./filereader').FileReader} fr\n * @param {import('buffer').Blob} blob\n * @param {string} type\n * @param {string?} encodingName\n */\nfunction readOperation (fr, blob, type, encodingName) {\n // 1. If fr’s state is \"loading\", throw an InvalidStateError\n // DOMException.\n if (fr[kState] === 'loading') {\n throw new DOMException('Invalid state', 'InvalidStateError')\n }\n\n // 2. Set fr’s state to \"loading\".\n fr[kState] = 'loading'\n\n // 3. Set fr’s result to null.\n fr[kResult] = null\n\n // 4. Set fr’s error to null.\n fr[kError] = null\n\n // 5. Let stream be the result of calling get stream on blob.\n /** @type {import('stream/web').ReadableStream} */\n const stream = blob.stream()\n\n // 6. Let reader be the result of getting a reader from stream.\n const reader = stream.getReader()\n\n // 7. Let bytes be an empty byte sequence.\n /** @type {Uint8Array[]} */\n const bytes = []\n\n // 8. Let chunkPromise be the result of reading a chunk from\n // stream with reader.\n let chunkPromise = reader.read()\n\n // 9. Let isFirstChunk be true.\n let isFirstChunk = true\n\n // 10. In parallel, while true:\n // Note: \"In parallel\" just means non-blocking\n // Note 2: readOperation itself cannot be async as double\n // reading the body would then reject the promise, instead\n // of throwing an error.\n ;(async () => {\n while (!fr[kAborted]) {\n // 1. Wait for chunkPromise to be fulfilled or rejected.\n try {\n const { done, value } = await chunkPromise\n\n // 2. If chunkPromise is fulfilled, and isFirstChunk is\n // true, queue a task to fire a progress event called\n // loadstart at fr.\n if (isFirstChunk && !fr[kAborted]) {\n queueMicrotask(() => {\n fireAProgressEvent('loadstart', fr)\n })\n }\n\n // 3. Set isFirstChunk to false.\n isFirstChunk = false\n\n // 4. If chunkPromise is fulfilled with an object whose\n // done property is false and whose value property is\n // a Uint8Array object, run these steps:\n if (!done && types.isUint8Array(value)) {\n // 1. Let bs be the byte sequence represented by the\n // Uint8Array object.\n\n // 2. Append bs to bytes.\n bytes.push(value)\n\n // 3. If roughly 50ms have passed since these steps\n // were last invoked, queue a task to fire a\n // progress event called progress at fr.\n if (\n (\n fr[kLastProgressEventFired] === undefined ||\n Date.now() - fr[kLastProgressEventFired] >= 50\n ) &&\n !fr[kAborted]\n ) {\n fr[kLastProgressEventFired] = Date.now()\n queueMicrotask(() => {\n fireAProgressEvent('progress', fr)\n })\n }\n\n // 4. Set chunkPromise to the result of reading a\n // chunk from stream with reader.\n chunkPromise = reader.read()\n } else if (done) {\n // 5. Otherwise, if chunkPromise is fulfilled with an\n // object whose done property is true, queue a task\n // to run the following steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr’s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Let result be the result of package data given\n // bytes, type, blob’s type, and encodingName.\n try {\n const result = packageData(bytes, type, blob.type, encodingName)\n\n // 4. Else:\n\n if (fr[kAborted]) {\n return\n }\n\n // 1. Set fr’s result to result.\n fr[kResult] = result\n\n // 2. Fire a progress event called load at the fr.\n fireAProgressEvent('load', fr)\n } catch (error) {\n // 3. If package data threw an exception error:\n\n // 1. Set fr’s error to error.\n fr[kError] = error\n\n // 2. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n }\n\n // 5. If fr’s state is not \"loading\", fire a progress\n // event called loadend at the fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n } catch (error) {\n if (fr[kAborted]) {\n return\n }\n\n // 6. Otherwise, if chunkPromise is rejected with an\n // error error, queue a task to run the following\n // steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr’s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Set fr’s error to error.\n fr[kError] = error\n\n // 3. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n\n // 4. If fr’s state is not \"loading\", fire a progress\n // event called loadend at fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n }\n })()\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#fire-a-progress-event\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e The name of the event\n * @param {import('./filereader').FileReader} reader\n */\nfunction fireAProgressEvent (e, reader) {\n // The progress event e does not bubble. e.bubbles must be false\n // The progress event e is NOT cancelable. e.cancelable must be false\n const event = new ProgressEvent(e, {\n bubbles: false,\n cancelable: false\n })\n\n reader.dispatchEvent(event)\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#blob-package-data\n * @param {Uint8Array[]} bytes\n * @param {string} type\n * @param {string?} mimeType\n * @param {string?} encodingName\n */\nfunction packageData (bytes, type, mimeType, encodingName) {\n // 1. A Blob has an associated package data algorithm, given\n // bytes, a type, a optional mimeType, and a optional\n // encodingName, which switches on type and runs the\n // associated steps:\n\n switch (type) {\n case 'DataURL': {\n // 1. Return bytes as a DataURL [RFC2397] subject to\n // the considerations below:\n // * Use mimeType as part of the Data URL if it is\n // available in keeping with the Data URL\n // specification [RFC2397].\n // * If mimeType is not available return a Data URL\n // without a media-type. [RFC2397].\n\n // https://datatracker.ietf.org/doc/html/rfc2397#section-3\n // dataurl := \"data:\" [ mediatype ] [ \";base64\" ] \",\" data\n // mediatype := [ type \"/\" subtype ] *( \";\" parameter )\n // data := *urlchar\n // parameter := attribute \"=\" value\n let dataURL = 'data:'\n\n const parsed = parseMIMEType(mimeType || 'application/octet-stream')\n\n if (parsed !== 'failure') {\n dataURL += serializeAMimeType(parsed)\n }\n\n dataURL += ';base64,'\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n dataURL += btoa(decoder.write(chunk))\n }\n\n dataURL += btoa(decoder.end())\n\n return dataURL\n }\n case 'Text': {\n // 1. Let encoding be failure\n let encoding = 'failure'\n\n // 2. If the encodingName is present, set encoding to the\n // result of getting an encoding from encodingName.\n if (encodingName) {\n encoding = getEncoding(encodingName)\n }\n\n // 3. If encoding is failure, and mimeType is present:\n if (encoding === 'failure' && mimeType) {\n // 1. Let type be the result of parse a MIME type\n // given mimeType.\n const type = parseMIMEType(mimeType)\n\n // 2. If type is not failure, set encoding to the result\n // of getting an encoding from type’s parameters[\"charset\"].\n if (type !== 'failure') {\n encoding = getEncoding(type.parameters.get('charset'))\n }\n }\n\n // 4. If encoding is failure, then set encoding to UTF-8.\n if (encoding === 'failure') {\n encoding = 'UTF-8'\n }\n\n // 5. Decode bytes using fallback encoding encoding, and\n // return the result.\n return decode(bytes, encoding)\n }\n case 'ArrayBuffer': {\n // Return a new ArrayBuffer whose contents are bytes.\n const sequence = combineByteSequences(bytes)\n\n return sequence.buffer\n }\n case 'BinaryString': {\n // Return bytes as a binary string, in which every byte\n // is represented by a code unit of equal value [0..255].\n let binaryString = ''\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n binaryString += decoder.write(chunk)\n }\n\n binaryString += decoder.end()\n\n return binaryString\n }\n }\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#decode\n * @param {Uint8Array[]} ioQueue\n * @param {string} encoding\n */\nfunction decode (ioQueue, encoding) {\n const bytes = combineByteSequences(ioQueue)\n\n // 1. Let BOMEncoding be the result of BOM sniffing ioQueue.\n const BOMEncoding = BOMSniffing(bytes)\n\n let slice = 0\n\n // 2. If BOMEncoding is non-null:\n if (BOMEncoding !== null) {\n // 1. Set encoding to BOMEncoding.\n encoding = BOMEncoding\n\n // 2. Read three bytes from ioQueue, if BOMEncoding is\n // UTF-8; otherwise read two bytes.\n // (Do nothing with those bytes.)\n slice = BOMEncoding === 'UTF-8' ? 3 : 2\n }\n\n // 3. Process a queue with an instance of encoding’s\n // decoder, ioQueue, output, and \"replacement\".\n\n // 4. Return output.\n\n const sliced = bytes.slice(slice)\n return new TextDecoder(encoding).decode(sliced)\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#bom-sniff\n * @param {Uint8Array} ioQueue\n */\nfunction BOMSniffing (ioQueue) {\n // 1. Let BOM be the result of peeking 3 bytes from ioQueue,\n // converted to a byte sequence.\n const [a, b, c] = ioQueue\n\n // 2. For each of the rows in the table below, starting with\n // the first one and going down, if BOM starts with the\n // bytes given in the first column, then return the\n // encoding given in the cell in the second column of that\n // row. Otherwise, return null.\n if (a === 0xEF && b === 0xBB && c === 0xBF) {\n return 'UTF-8'\n } else if (a === 0xFE && b === 0xFF) {\n return 'UTF-16BE'\n } else if (a === 0xFF && b === 0xFE) {\n return 'UTF-16LE'\n }\n\n return null\n}\n\n/**\n * @param {Uint8Array[]} sequences\n */\nfunction combineByteSequences (sequences) {\n const size = sequences.reduce((a, b) => {\n return a + b.byteLength\n }, 0)\n\n let offset = 0\n\n return sequences.reduce((a, b) => {\n a.set(b, offset)\n offset += b.byteLength\n return a\n }, new Uint8Array(size))\n}\n\nmodule.exports = {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n}\n","'use strict'\n\nconst {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n} = require('./util')\nconst {\n kState,\n kError,\n kResult,\n kEvents,\n kAborted\n} = require('./symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass FileReader extends EventTarget {\n constructor () {\n super()\n\n this[kState] = 'empty'\n this[kResult] = null\n this[kError] = null\n this[kEvents] = {\n loadend: null,\n error: null,\n abort: null,\n load: null,\n progress: null,\n loadstart: null\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer\n * @param {import('buffer').Blob} blob\n */\n readAsArrayBuffer (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsArrayBuffer(blob) method, when invoked,\n // must initiate a read operation for blob with ArrayBuffer.\n readOperation(this, blob, 'ArrayBuffer')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsBinaryString\n * @param {import('buffer').Blob} blob\n */\n readAsBinaryString (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsBinaryString(blob) method, when invoked,\n // must initiate a read operation for blob with BinaryString.\n readOperation(this, blob, 'BinaryString')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsDataText\n * @param {import('buffer').Blob} blob\n * @param {string?} encoding\n */\n readAsText (blob, encoding = undefined) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n if (encoding !== undefined) {\n encoding = webidl.converters.DOMString(encoding)\n }\n\n // The readAsText(blob, encoding) method, when invoked,\n // must initiate a read operation for blob with Text and encoding.\n readOperation(this, blob, 'Text', encoding)\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL\n * @param {import('buffer').Blob} blob\n */\n readAsDataURL (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsDataURL(blob) method, when invoked, must\n // initiate a read operation for blob with DataURL.\n readOperation(this, blob, 'DataURL')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-abort\n */\n abort () {\n // 1. If this's state is \"empty\" or if this's state is\n // \"done\" set this's result to null and terminate\n // this algorithm.\n if (this[kState] === 'empty' || this[kState] === 'done') {\n this[kResult] = null\n return\n }\n\n // 2. If this's state is \"loading\" set this's state to\n // \"done\" and set this's result to null.\n if (this[kState] === 'loading') {\n this[kState] = 'done'\n this[kResult] = null\n }\n\n // 3. If there are any tasks from this on the file reading\n // task source in an affiliated task queue, then remove\n // those tasks from that task queue.\n this[kAborted] = true\n\n // 4. Terminate the algorithm for the read method being processed.\n // TODO\n\n // 5. Fire a progress event called abort at this.\n fireAProgressEvent('abort', this)\n\n // 6. If this's state is not \"loading\", fire a progress\n // event called loadend at this.\n if (this[kState] !== 'loading') {\n fireAProgressEvent('loadend', this)\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate\n */\n get readyState () {\n webidl.brandCheck(this, FileReader)\n\n switch (this[kState]) {\n case 'empty': return this.EMPTY\n case 'loading': return this.LOADING\n case 'done': return this.DONE\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-result\n */\n get result () {\n webidl.brandCheck(this, FileReader)\n\n // The result attribute’s getter, when invoked, must return\n // this's result.\n return this[kResult]\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-error\n */\n get error () {\n webidl.brandCheck(this, FileReader)\n\n // The error attribute’s getter, when invoked, must return\n // this's error.\n return this[kError]\n }\n\n get onloadend () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadend\n }\n\n set onloadend (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadend) {\n this.removeEventListener('loadend', this[kEvents].loadend)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadend = fn\n this.addEventListener('loadend', fn)\n } else {\n this[kEvents].loadend = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].error) {\n this.removeEventListener('error', this[kEvents].error)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].error = fn\n this.addEventListener('error', fn)\n } else {\n this[kEvents].error = null\n }\n }\n\n get onloadstart () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadstart\n }\n\n set onloadstart (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadstart) {\n this.removeEventListener('loadstart', this[kEvents].loadstart)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadstart = fn\n this.addEventListener('loadstart', fn)\n } else {\n this[kEvents].loadstart = null\n }\n }\n\n get onprogress () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].progress\n }\n\n set onprogress (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].progress) {\n this.removeEventListener('progress', this[kEvents].progress)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].progress = fn\n this.addEventListener('progress', fn)\n } else {\n this[kEvents].progress = null\n }\n }\n\n get onload () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].load\n }\n\n set onload (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].load) {\n this.removeEventListener('load', this[kEvents].load)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].load = fn\n this.addEventListener('load', fn)\n } else {\n this[kEvents].load = null\n }\n }\n\n get onabort () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].abort\n }\n\n set onabort (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].abort) {\n this.removeEventListener('abort', this[kEvents].abort)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].abort = fn\n this.addEventListener('abort', fn)\n } else {\n this[kEvents].abort = null\n }\n }\n}\n\n// https://w3c.github.io/FileAPI/#dom-filereader-empty\nFileReader.EMPTY = FileReader.prototype.EMPTY = 0\n// https://w3c.github.io/FileAPI/#dom-filereader-loading\nFileReader.LOADING = FileReader.prototype.LOADING = 1\n// https://w3c.github.io/FileAPI/#dom-filereader-done\nFileReader.DONE = FileReader.prototype.DONE = 2\n\nObject.defineProperties(FileReader.prototype, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors,\n readAsArrayBuffer: kEnumerableProperty,\n readAsBinaryString: kEnumerableProperty,\n readAsText: kEnumerableProperty,\n readAsDataURL: kEnumerableProperty,\n abort: kEnumerableProperty,\n readyState: kEnumerableProperty,\n result: kEnumerableProperty,\n error: kEnumerableProperty,\n onloadstart: kEnumerableProperty,\n onprogress: kEnumerableProperty,\n onload: kEnumerableProperty,\n onabort: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onloadend: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'FileReader',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(FileReader, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors\n})\n\nmodule.exports = {\n FileReader\n}\n","'use strict'\n\nmodule.exports = {\n kConstruct: require('../core/symbols').kConstruct\n}\n","'use strict'\n\nconst assert = require('assert')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { isValidHeaderName } = require('../fetch/util')\n\n/**\n * @see https://url.spec.whatwg.org/#concept-url-equals\n * @param {URL} A\n * @param {URL} B\n * @param {boolean | undefined} excludeFragment\n * @returns {boolean}\n */\nfunction urlEquals (A, B, excludeFragment = false) {\n const serializedA = URLSerializer(A, excludeFragment)\n\n const serializedB = URLSerializer(B, excludeFragment)\n\n return serializedA === serializedB\n}\n\n/**\n * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262\n * @param {string} header\n */\nfunction fieldValues (header) {\n assert(header !== null)\n\n const values = []\n\n for (let value of header.split(',')) {\n value = value.trim()\n\n if (!value.length) {\n continue\n } else if (!isValidHeaderName(value)) {\n continue\n }\n\n values.push(value)\n }\n\n return values\n}\n\nmodule.exports = {\n urlEquals,\n fieldValues\n}\n","'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { urlEquals, fieldValues: getFieldValues } = require('./util')\nconst { kEnumerableProperty, isDisturbed } = require('../core/util')\nconst { kHeadersList } = require('../core/symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { Response, cloneResponse } = require('../fetch/response')\nconst { Request } = require('../fetch/request')\nconst { kState, kHeaders, kGuard, kRealm } = require('../fetch/symbols')\nconst { fetching } = require('../fetch/index')\nconst { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require('../fetch/util')\nconst assert = require('assert')\nconst { getGlobalDispatcher } = require('../global')\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation\n * @typedef {Object} CacheBatchOperation\n * @property {'delete' | 'put'} type\n * @property {any} request\n * @property {any} response\n * @property {import('../../types/cache').CacheQueryOptions} options\n */\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list\n * @typedef {[any, any][]} requestResponseList\n */\n\nclass Cache {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list\n * @type {requestResponseList}\n */\n #relevantRequestResponseList\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n\n this.#relevantRequestResponseList = arguments[1]\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n const p = await this.matchAll(request, options)\n\n if (p.length === 0) {\n return\n }\n\n return p[0]\n }\n\n async matchAll (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') {\n // 2.2.1\n r = new Request(request)[kState]\n }\n }\n\n // 5.\n // 5.1\n const responses = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n responses.push(requestResponse[1])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n responses.push(requestResponse[1])\n }\n }\n\n // 5.4\n // We don't implement CORs so we don't need to loop over the responses, yay!\n\n // 5.5.1\n const responseList = []\n\n // 5.5.2\n for (const response of responses) {\n // 5.5.2.1\n const responseObject = new Response(response.body?.source ?? null)\n const body = responseObject[kState].body\n responseObject[kState] = response\n responseObject[kState].body = body\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n\n responseList.push(responseObject)\n }\n\n // 6.\n return Object.freeze(responseList)\n }\n\n async add (request) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' })\n\n request = webidl.converters.RequestInfo(request)\n\n // 1.\n const requests = [request]\n\n // 2.\n const responseArrayPromise = this.addAll(requests)\n\n // 3.\n return await responseArrayPromise\n }\n\n async addAll (requests) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' })\n\n requests = webidl.converters['sequence'](requests)\n\n // 1.\n const responsePromises = []\n\n // 2.\n const requestList = []\n\n // 3.\n for (const request of requests) {\n if (typeof request === 'string') {\n continue\n }\n\n // 3.1\n const r = request[kState]\n\n // 3.2\n if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme when method is not GET.'\n })\n }\n }\n\n // 4.\n /** @type {ReturnType[]} */\n const fetchControllers = []\n\n // 5.\n for (const request of requests) {\n // 5.1\n const r = new Request(request)[kState]\n\n // 5.2\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme.'\n })\n }\n\n // 5.4\n r.initiator = 'fetch'\n r.destination = 'subresource'\n\n // 5.5\n requestList.push(r)\n\n // 5.6\n const responsePromise = createDeferredPromise()\n\n // 5.7\n fetchControllers.push(fetching({\n request: r,\n dispatcher: getGlobalDispatcher(),\n processResponse (response) {\n // 1.\n if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Received an invalid status code or the request failed.'\n }))\n } else if (response.headersList.contains('vary')) { // 2.\n // 2.1\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n // 2.2\n for (const fieldValue of fieldValues) {\n // 2.2.1\n if (fieldValue === '*') {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'invalid vary field value'\n }))\n\n for (const controller of fetchControllers) {\n controller.abort()\n }\n\n return\n }\n }\n }\n },\n processResponseEndOfBody (response) {\n // 1.\n if (response.aborted) {\n responsePromise.reject(new DOMException('aborted', 'AbortError'))\n return\n }\n\n // 2.\n responsePromise.resolve(response)\n }\n }))\n\n // 5.8\n responsePromises.push(responsePromise.promise)\n }\n\n // 6.\n const p = Promise.all(responsePromises)\n\n // 7.\n const responses = await p\n\n // 7.1\n const operations = []\n\n // 7.2\n let index = 0\n\n // 7.3\n for (const response of responses) {\n // 7.3.1\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 7.3.2\n request: requestList[index], // 7.3.3\n response // 7.3.4\n }\n\n operations.push(operation) // 7.3.5\n\n index++ // 7.3.6\n }\n\n // 7.5\n const cacheJobPromise = createDeferredPromise()\n\n // 7.6.1\n let errorData = null\n\n // 7.6.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 7.6.3\n queueMicrotask(() => {\n // 7.6.3.1\n if (errorData === null) {\n cacheJobPromise.resolve(undefined)\n } else {\n // 7.6.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n // 7.7\n return cacheJobPromise.promise\n }\n\n async put (request, response) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' })\n\n request = webidl.converters.RequestInfo(request)\n response = webidl.converters.Response(response)\n\n // 1.\n let innerRequest = null\n\n // 2.\n if (request instanceof Request) {\n innerRequest = request[kState]\n } else { // 3.\n innerRequest = new Request(request)[kState]\n }\n\n // 4.\n if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Expected an http/s scheme when method is not GET'\n })\n }\n\n // 5.\n const innerResponse = response[kState]\n\n // 6.\n if (innerResponse.status === 206) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got 206 status'\n })\n }\n\n // 7.\n if (innerResponse.headersList.contains('vary')) {\n // 7.1.\n const fieldValues = getFieldValues(innerResponse.headersList.get('vary'))\n\n // 7.2.\n for (const fieldValue of fieldValues) {\n // 7.2.1\n if (fieldValue === '*') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got * vary field value'\n })\n }\n }\n }\n\n // 8.\n if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Response body is locked or disturbed'\n })\n }\n\n // 9.\n const clonedResponse = cloneResponse(innerResponse)\n\n // 10.\n const bodyReadPromise = createDeferredPromise()\n\n // 11.\n if (innerResponse.body != null) {\n // 11.1\n const stream = innerResponse.body.stream\n\n // 11.2\n const reader = stream.getReader()\n\n // 11.3\n readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject)\n } else {\n bodyReadPromise.resolve(undefined)\n }\n\n // 12.\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n // 13.\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 14.\n request: innerRequest, // 15.\n response: clonedResponse // 16.\n }\n\n // 17.\n operations.push(operation)\n\n // 19.\n const bytes = await bodyReadPromise.promise\n\n if (clonedResponse.body != null) {\n clonedResponse.body.source = bytes\n }\n\n // 19.1\n const cacheJobPromise = createDeferredPromise()\n\n // 19.2.1\n let errorData = null\n\n // 19.2.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 19.2.3\n queueMicrotask(() => {\n // 19.2.3.1\n if (errorData === null) {\n cacheJobPromise.resolve()\n } else { // 19.2.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n async delete (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n /**\n * @type {Request}\n */\n let r = null\n\n if (request instanceof Request) {\n r = request[kState]\n\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return false\n }\n } else {\n assert(typeof request === 'string')\n\n r = new Request(request)[kState]\n }\n\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'delete',\n request: r,\n options\n }\n\n operations.push(operation)\n\n const cacheJobPromise = createDeferredPromise()\n\n let errorData = null\n let requestResponses\n\n try {\n requestResponses = this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n queueMicrotask(() => {\n if (errorData === null) {\n cacheJobPromise.resolve(!!requestResponses?.length)\n } else {\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys\n * @param {any} request\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @returns {readonly Request[]}\n */\n async keys (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n // 2.1\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') { // 2.2\n r = new Request(request)[kState]\n }\n }\n\n // 4.\n const promise = createDeferredPromise()\n\n // 5.\n // 5.1\n const requests = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n // 5.2.1.1\n requests.push(requestResponse[0])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n // 5.3.2.1\n requests.push(requestResponse[0])\n }\n }\n\n // 5.4\n queueMicrotask(() => {\n // 5.4.1\n const requestList = []\n\n // 5.4.2\n for (const request of requests) {\n const requestObject = new Request('https://a')\n requestObject[kState] = request\n requestObject[kHeaders][kHeadersList] = request.headersList\n requestObject[kHeaders][kGuard] = 'immutable'\n requestObject[kRealm] = request.client\n\n // 5.4.2.1\n requestList.push(requestObject)\n }\n\n // 5.4.3\n promise.resolve(Object.freeze(requestList))\n })\n\n return promise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm\n * @param {CacheBatchOperation[]} operations\n * @returns {requestResponseList}\n */\n #batchCacheOperations (operations) {\n // 1.\n const cache = this.#relevantRequestResponseList\n\n // 2.\n const backupCache = [...cache]\n\n // 3.\n const addedItems = []\n\n // 4.1\n const resultList = []\n\n try {\n // 4.2\n for (const operation of operations) {\n // 4.2.1\n if (operation.type !== 'delete' && operation.type !== 'put') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'operation type does not match \"delete\" or \"put\"'\n })\n }\n\n // 4.2.2\n if (operation.type === 'delete' && operation.response != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'delete operation should not have an associated response'\n })\n }\n\n // 4.2.3\n if (this.#queryCache(operation.request, operation.options, addedItems).length) {\n throw new DOMException('???', 'InvalidStateError')\n }\n\n // 4.2.4\n let requestResponses\n\n // 4.2.5\n if (operation.type === 'delete') {\n // 4.2.5.1\n requestResponses = this.#queryCache(operation.request, operation.options)\n\n // TODO: the spec is wrong, this is needed to pass WPTs\n if (requestResponses.length === 0) {\n return []\n }\n\n // 4.2.5.2\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.5.2.1\n cache.splice(idx, 1)\n }\n } else if (operation.type === 'put') { // 4.2.6\n // 4.2.6.1\n if (operation.response == null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'put operation should have an associated response'\n })\n }\n\n // 4.2.6.2\n const r = operation.request\n\n // 4.2.6.3\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'expected http or https scheme'\n })\n }\n\n // 4.2.6.4\n if (r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'not get method'\n })\n }\n\n // 4.2.6.5\n if (operation.options != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'options must not be defined'\n })\n }\n\n // 4.2.6.6\n requestResponses = this.#queryCache(operation.request)\n\n // 4.2.6.7\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.6.7.1\n cache.splice(idx, 1)\n }\n\n // 4.2.6.8\n cache.push([operation.request, operation.response])\n\n // 4.2.6.10\n addedItems.push([operation.request, operation.response])\n }\n\n // 4.2.7\n resultList.push([operation.request, operation.response])\n }\n\n // 4.3\n return resultList\n } catch (e) { // 5.\n // 5.1\n this.#relevantRequestResponseList.length = 0\n\n // 5.2\n this.#relevantRequestResponseList = backupCache\n\n // 5.3\n throw e\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#query-cache\n * @param {any} requestQuery\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @param {requestResponseList} targetStorage\n * @returns {requestResponseList}\n */\n #queryCache (requestQuery, options, targetStorage) {\n /** @type {requestResponseList} */\n const resultList = []\n\n const storage = targetStorage ?? this.#relevantRequestResponseList\n\n for (const requestResponse of storage) {\n const [cachedRequest, cachedResponse] = requestResponse\n if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) {\n resultList.push(requestResponse)\n }\n }\n\n return resultList\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm\n * @param {any} requestQuery\n * @param {any} request\n * @param {any | null} response\n * @param {import('../../types/cache').CacheQueryOptions | undefined} options\n * @returns {boolean}\n */\n #requestMatchesCachedItem (requestQuery, request, response = null, options) {\n // if (options?.ignoreMethod === false && request.method === 'GET') {\n // return false\n // }\n\n const queryURL = new URL(requestQuery.url)\n\n const cachedURL = new URL(request.url)\n\n if (options?.ignoreSearch) {\n cachedURL.search = ''\n\n queryURL.search = ''\n }\n\n if (!urlEquals(queryURL, cachedURL, true)) {\n return false\n }\n\n if (\n response == null ||\n options?.ignoreVary ||\n !response.headersList.contains('vary')\n ) {\n return true\n }\n\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n for (const fieldValue of fieldValues) {\n if (fieldValue === '*') {\n return false\n }\n\n const requestValue = request.headersList.get(fieldValue)\n const queryValue = requestQuery.headersList.get(fieldValue)\n\n // If one has the header and the other doesn't, or one has\n // a different value than the other, return false\n if (requestValue !== queryValue) {\n return false\n }\n }\n\n return true\n }\n}\n\nObject.defineProperties(Cache.prototype, {\n [Symbol.toStringTag]: {\n value: 'Cache',\n configurable: true\n },\n match: kEnumerableProperty,\n matchAll: kEnumerableProperty,\n add: kEnumerableProperty,\n addAll: kEnumerableProperty,\n put: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nconst cacheQueryOptionConverters = [\n {\n key: 'ignoreSearch',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreMethod',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreVary',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters)\n\nwebidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([\n ...cacheQueryOptionConverters,\n {\n key: 'cacheName',\n converter: webidl.converters.DOMString\n }\n])\n\nwebidl.converters.Response = webidl.interfaceConverter(Response)\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.RequestInfo\n)\n\nmodule.exports = {\n Cache\n}\n","'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { Cache } = require('./cache')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass CacheStorage {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map\n * @type {Map}\n */\n async has (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1.1\n // 2.2\n return this.#caches.has(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open\n * @param {string} cacheName\n * @returns {Promise}\n */\n async open (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1\n if (this.#caches.has(cacheName)) {\n // await caches.open('v1') !== await caches.open('v1')\n\n // 2.1.1\n const cache = this.#caches.get(cacheName)\n\n // 2.1.1.1\n return new Cache(kConstruct, cache)\n }\n\n // 2.2\n const cache = []\n\n // 2.3\n this.#caches.set(cacheName, cache)\n\n // 2.4\n return new Cache(kConstruct, cache)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete\n * @param {string} cacheName\n * @returns {Promise}\n */\n async delete (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n return this.#caches.delete(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys\n * @returns {string[]}\n */\n async keys () {\n webidl.brandCheck(this, CacheStorage)\n\n // 2.1\n const keys = this.#caches.keys()\n\n // 2.2\n return [...keys]\n }\n}\n\nObject.defineProperties(CacheStorage.prototype, {\n [Symbol.toStringTag]: {\n value: 'CacheStorage',\n configurable: true\n },\n match: kEnumerableProperty,\n has: kEnumerableProperty,\n open: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nmodule.exports = {\n CacheStorage\n}\n","'use strict'\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size\nconst maxAttributeValueSize = 1024\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size\nconst maxNameValuePairSize = 4096\n\nmodule.exports = {\n maxAttributeValueSize,\n maxNameValuePairSize\n}\n","'use strict'\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction isCTLExcludingHtab (value) {\n if (value.length === 0) {\n return false\n }\n\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n (code >= 0x00 || code <= 0x08) ||\n (code >= 0x0A || code <= 0x1F) ||\n code === 0x7F\n ) {\n return false\n }\n }\n}\n\n/**\n CHAR = \n token = 1*\n separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n | \",\" | \";\" | \":\" | \"\\\" | <\">\n | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n | \"{\" | \"}\" | SP | HT\n * @param {string} name\n */\nfunction validateCookieName (name) {\n for (const char of name) {\n const code = char.charCodeAt(0)\n\n if (\n (code <= 0x20 || code > 0x7F) ||\n char === '(' ||\n char === ')' ||\n char === '>' ||\n char === '<' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}'\n ) {\n throw new Error('Invalid cookie name')\n }\n }\n}\n\n/**\n cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n ; US-ASCII characters excluding CTLs,\n ; whitespace DQUOTE, comma, semicolon,\n ; and backslash\n * @param {string} value\n */\nfunction validateCookieValue (value) {\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 || // exclude CTLs (0-31)\n code === 0x22 ||\n code === 0x2C ||\n code === 0x3B ||\n code === 0x5C ||\n code > 0x7E // non-ascii\n ) {\n throw new Error('Invalid header value')\n }\n }\n}\n\n/**\n * path-value = \n * @param {string} path\n */\nfunction validateCookiePath (path) {\n for (const char of path) {\n const code = char.charCodeAt(0)\n\n if (code < 0x21 || char === ';') {\n throw new Error('Invalid cookie path')\n }\n }\n}\n\n/**\n * I have no idea why these values aren't allowed to be honest,\n * but Deno tests these. - Khafra\n * @param {string} domain\n */\nfunction validateCookieDomain (domain) {\n if (\n domain.startsWith('-') ||\n domain.endsWith('.') ||\n domain.endsWith('-')\n ) {\n throw new Error('Invalid cookie domain')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1\n * @param {number|Date} date\n IMF-fixdate = day-name \",\" SP date1 SP time-of-day SP GMT\n ; fixed length/zone/capitalization subset of the format\n ; see Section 3.3 of [RFC5322]\n\n day-name = %x4D.6F.6E ; \"Mon\", case-sensitive\n / %x54.75.65 ; \"Tue\", case-sensitive\n / %x57.65.64 ; \"Wed\", case-sensitive\n / %x54.68.75 ; \"Thu\", case-sensitive\n / %x46.72.69 ; \"Fri\", case-sensitive\n / %x53.61.74 ; \"Sat\", case-sensitive\n / %x53.75.6E ; \"Sun\", case-sensitive\n date1 = day SP month SP year\n ; e.g., 02 Jun 1982\n\n day = 2DIGIT\n month = %x4A.61.6E ; \"Jan\", case-sensitive\n / %x46.65.62 ; \"Feb\", case-sensitive\n / %x4D.61.72 ; \"Mar\", case-sensitive\n / %x41.70.72 ; \"Apr\", case-sensitive\n / %x4D.61.79 ; \"May\", case-sensitive\n / %x4A.75.6E ; \"Jun\", case-sensitive\n / %x4A.75.6C ; \"Jul\", case-sensitive\n / %x41.75.67 ; \"Aug\", case-sensitive\n / %x53.65.70 ; \"Sep\", case-sensitive\n / %x4F.63.74 ; \"Oct\", case-sensitive\n / %x4E.6F.76 ; \"Nov\", case-sensitive\n / %x44.65.63 ; \"Dec\", case-sensitive\n year = 4DIGIT\n\n GMT = %x47.4D.54 ; \"GMT\", case-sensitive\n\n time-of-day = hour \":\" minute \":\" second\n ; 00:00:00 - 23:59:60 (leap second)\n\n hour = 2DIGIT\n minute = 2DIGIT\n second = 2DIGIT\n */\nfunction toIMFDate (date) {\n if (typeof date === 'number') {\n date = new Date(date)\n }\n\n const days = [\n 'Sun', 'Mon', 'Tue', 'Wed',\n 'Thu', 'Fri', 'Sat'\n ]\n\n const months = [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n ]\n\n const dayName = days[date.getUTCDay()]\n const day = date.getUTCDate().toString().padStart(2, '0')\n const month = months[date.getUTCMonth()]\n const year = date.getUTCFullYear()\n const hour = date.getUTCHours().toString().padStart(2, '0')\n const minute = date.getUTCMinutes().toString().padStart(2, '0')\n const second = date.getUTCSeconds().toString().padStart(2, '0')\n\n return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`\n}\n\n/**\n max-age-av = \"Max-Age=\" non-zero-digit *DIGIT\n ; In practice, both expires-av and max-age-av\n ; are limited to dates representable by the\n ; user agent.\n * @param {number} maxAge\n */\nfunction validateCookieMaxAge (maxAge) {\n if (maxAge < 0) {\n throw new Error('Invalid cookie max-age')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1\n * @param {import('./index').Cookie} cookie\n */\nfunction stringify (cookie) {\n if (cookie.name.length === 0) {\n return null\n }\n\n validateCookieName(cookie.name)\n validateCookieValue(cookie.value)\n\n const out = [`${cookie.name}=${cookie.value}`]\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2\n if (cookie.name.startsWith('__Secure-')) {\n cookie.secure = true\n }\n\n if (cookie.name.startsWith('__Host-')) {\n cookie.secure = true\n cookie.domain = null\n cookie.path = '/'\n }\n\n if (cookie.secure) {\n out.push('Secure')\n }\n\n if (cookie.httpOnly) {\n out.push('HttpOnly')\n }\n\n if (typeof cookie.maxAge === 'number') {\n validateCookieMaxAge(cookie.maxAge)\n out.push(`Max-Age=${cookie.maxAge}`)\n }\n\n if (cookie.domain) {\n validateCookieDomain(cookie.domain)\n out.push(`Domain=${cookie.domain}`)\n }\n\n if (cookie.path) {\n validateCookiePath(cookie.path)\n out.push(`Path=${cookie.path}`)\n }\n\n if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') {\n out.push(`Expires=${toIMFDate(cookie.expires)}`)\n }\n\n if (cookie.sameSite) {\n out.push(`SameSite=${cookie.sameSite}`)\n }\n\n for (const part of cookie.unparsed) {\n if (!part.includes('=')) {\n throw new Error('Invalid unparsed')\n }\n\n const [key, ...value] = part.split('=')\n\n out.push(`${key.trim()}=${value.join('=')}`)\n }\n\n return out.join('; ')\n}\n\nmodule.exports = {\n isCTLExcludingHtab,\n validateCookieName,\n validateCookiePath,\n validateCookieValue,\n toIMFDate,\n stringify\n}\n","'use strict'\n\nconst { maxNameValuePairSize, maxAttributeValueSize } = require('./constants')\nconst { isCTLExcludingHtab } = require('./util')\nconst { collectASequenceOfCodePointsFast } = require('../fetch/dataURL')\nconst assert = require('assert')\n\n/**\n * @description Parses the field-value attributes of a set-cookie header string.\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} header\n * @returns if the header is invalid, null will be returned\n */\nfunction parseSetCookie (header) {\n // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F\n // character (CTL characters excluding HTAB): Abort these steps and\n // ignore the set-cookie-string entirely.\n if (isCTLExcludingHtab(header)) {\n return null\n }\n\n let nameValuePair = ''\n let unparsedAttributes = ''\n let name = ''\n let value = ''\n\n // 2. If the set-cookie-string contains a %x3B (\";\") character:\n if (header.includes(';')) {\n // 1. The name-value-pair string consists of the characters up to,\n // but not including, the first %x3B (\";\"), and the unparsed-\n // attributes consist of the remainder of the set-cookie-string\n // (including the %x3B (\";\") in question).\n const position = { position: 0 }\n\n nameValuePair = collectASequenceOfCodePointsFast(';', header, position)\n unparsedAttributes = header.slice(position.position)\n } else {\n // Otherwise:\n\n // 1. The name-value-pair string consists of all the characters\n // contained in the set-cookie-string, and the unparsed-\n // attributes is the empty string.\n nameValuePair = header\n }\n\n // 3. If the name-value-pair string lacks a %x3D (\"=\") character, then\n // the name string is empty, and the value string is the value of\n // name-value-pair.\n if (!nameValuePair.includes('=')) {\n value = nameValuePair\n } else {\n // Otherwise, the name string consists of the characters up to, but\n // not including, the first %x3D (\"=\") character, and the (possibly\n // empty) value string consists of the characters after the first\n // %x3D (\"=\") character.\n const position = { position: 0 }\n name = collectASequenceOfCodePointsFast(\n '=',\n nameValuePair,\n position\n )\n value = nameValuePair.slice(position.position + 1)\n }\n\n // 4. Remove any leading or trailing WSP characters from the name\n // string and the value string.\n name = name.trim()\n value = value.trim()\n\n // 5. If the sum of the lengths of the name string and the value string\n // is more than 4096 octets, abort these steps and ignore the set-\n // cookie-string entirely.\n if (name.length + value.length > maxNameValuePairSize) {\n return null\n }\n\n // 6. The cookie-name is the name string, and the cookie-value is the\n // value string.\n return {\n name, value, ...parseUnparsedAttributes(unparsedAttributes)\n }\n}\n\n/**\n * Parses the remaining attributes of a set-cookie header\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} unparsedAttributes\n * @param {[Object.]={}} cookieAttributeList\n */\nfunction parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) {\n // 1. If the unparsed-attributes string is empty, skip the rest of\n // these steps.\n if (unparsedAttributes.length === 0) {\n return cookieAttributeList\n }\n\n // 2. Discard the first character of the unparsed-attributes (which\n // will be a %x3B (\";\") character).\n assert(unparsedAttributes[0] === ';')\n unparsedAttributes = unparsedAttributes.slice(1)\n\n let cookieAv = ''\n\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n if (unparsedAttributes.includes(';')) {\n // 1. Consume the characters of the unparsed-attributes up to, but\n // not including, the first %x3B (\";\") character.\n cookieAv = collectASequenceOfCodePointsFast(\n ';',\n unparsedAttributes,\n { position: 0 }\n )\n unparsedAttributes = unparsedAttributes.slice(cookieAv.length)\n } else {\n // Otherwise:\n\n // 1. Consume the remainder of the unparsed-attributes.\n cookieAv = unparsedAttributes\n unparsedAttributes = ''\n }\n\n // Let the cookie-av string be the characters consumed in this step.\n\n let attributeName = ''\n let attributeValue = ''\n\n // 4. If the cookie-av string contains a %x3D (\"=\") character:\n if (cookieAv.includes('=')) {\n // 1. The (possibly empty) attribute-name string consists of the\n // characters up to, but not including, the first %x3D (\"=\")\n // character, and the (possibly empty) attribute-value string\n // consists of the characters after the first %x3D (\"=\")\n // character.\n const position = { position: 0 }\n\n attributeName = collectASequenceOfCodePointsFast(\n '=',\n cookieAv,\n position\n )\n attributeValue = cookieAv.slice(position.position + 1)\n } else {\n // Otherwise:\n\n // 1. The attribute-name string consists of the entire cookie-av\n // string, and the attribute-value string is empty.\n attributeName = cookieAv\n }\n\n // 5. Remove any leading or trailing WSP characters from the attribute-\n // name string and the attribute-value string.\n attributeName = attributeName.trim()\n attributeValue = attributeValue.trim()\n\n // 6. If the attribute-value is longer than 1024 octets, ignore the\n // cookie-av string and return to Step 1 of this algorithm.\n if (attributeValue.length > maxAttributeValueSize) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 7. Process the attribute-name and attribute-value according to the\n // requirements in the following subsections. (Notice that\n // attributes with unrecognized attribute-names are ignored.)\n const attributeNameLowercase = attributeName.toLowerCase()\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1\n // If the attribute-name case-insensitively matches the string\n // \"Expires\", the user agent MUST process the cookie-av as follows.\n if (attributeNameLowercase === 'expires') {\n // 1. Let the expiry-time be the result of parsing the attribute-value\n // as cookie-date (see Section 5.1.1).\n const expiryTime = new Date(attributeValue)\n\n // 2. If the attribute-value failed to parse as a cookie date, ignore\n // the cookie-av.\n\n cookieAttributeList.expires = expiryTime\n } else if (attributeNameLowercase === 'max-age') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2\n // If the attribute-name case-insensitively matches the string \"Max-\n // Age\", the user agent MUST process the cookie-av as follows.\n\n // 1. If the first character of the attribute-value is not a DIGIT or a\n // \"-\" character, ignore the cookie-av.\n const charCode = attributeValue.charCodeAt(0)\n\n if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 2. If the remainder of attribute-value contains a non-DIGIT\n // character, ignore the cookie-av.\n if (!/^\\d+$/.test(attributeValue)) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 3. Let delta-seconds be the attribute-value converted to an integer.\n const deltaSeconds = Number(attributeValue)\n\n // 4. Let cookie-age-limit be the maximum age of the cookie (which\n // SHOULD be 400 days or less, see Section 4.1.2.2).\n\n // 5. Set delta-seconds to the smaller of its present value and cookie-\n // age-limit.\n // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs)\n\n // 6. If delta-seconds is less than or equal to zero (0), let expiry-\n // time be the earliest representable date and time. Otherwise, let\n // the expiry-time be the current date and time plus delta-seconds\n // seconds.\n // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds\n\n // 7. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Max-Age and an attribute-value of expiry-time.\n cookieAttributeList.maxAge = deltaSeconds\n } else if (attributeNameLowercase === 'domain') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3\n // If the attribute-name case-insensitively matches the string \"Domain\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. Let cookie-domain be the attribute-value.\n let cookieDomain = attributeValue\n\n // 2. If cookie-domain starts with %x2E (\".\"), let cookie-domain be\n // cookie-domain without its leading %x2E (\".\").\n if (cookieDomain[0] === '.') {\n cookieDomain = cookieDomain.slice(1)\n }\n\n // 3. Convert the cookie-domain to lower case.\n cookieDomain = cookieDomain.toLowerCase()\n\n // 4. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Domain and an attribute-value of cookie-domain.\n cookieAttributeList.domain = cookieDomain\n } else if (attributeNameLowercase === 'path') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4\n // If the attribute-name case-insensitively matches the string \"Path\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. If the attribute-value is empty or if the first character of the\n // attribute-value is not %x2F (\"/\"):\n let cookiePath = ''\n if (attributeValue.length === 0 || attributeValue[0] !== '/') {\n // 1. Let cookie-path be the default-path.\n cookiePath = '/'\n } else {\n // Otherwise:\n\n // 1. Let cookie-path be the attribute-value.\n cookiePath = attributeValue\n }\n\n // 2. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Path and an attribute-value of cookie-path.\n cookieAttributeList.path = cookiePath\n } else if (attributeNameLowercase === 'secure') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5\n // If the attribute-name case-insensitively matches the string \"Secure\",\n // the user agent MUST append an attribute to the cookie-attribute-list\n // with an attribute-name of Secure and an empty attribute-value.\n\n cookieAttributeList.secure = true\n } else if (attributeNameLowercase === 'httponly') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6\n // If the attribute-name case-insensitively matches the string\n // \"HttpOnly\", the user agent MUST append an attribute to the cookie-\n // attribute-list with an attribute-name of HttpOnly and an empty\n // attribute-value.\n\n cookieAttributeList.httpOnly = true\n } else if (attributeNameLowercase === 'samesite') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7\n // If the attribute-name case-insensitively matches the string\n // \"SameSite\", the user agent MUST process the cookie-av as follows:\n\n // 1. Let enforcement be \"Default\".\n let enforcement = 'Default'\n\n const attributeValueLowercase = attributeValue.toLowerCase()\n // 2. If cookie-av's attribute-value is a case-insensitive match for\n // \"None\", set enforcement to \"None\".\n if (attributeValueLowercase.includes('none')) {\n enforcement = 'None'\n }\n\n // 3. If cookie-av's attribute-value is a case-insensitive match for\n // \"Strict\", set enforcement to \"Strict\".\n if (attributeValueLowercase.includes('strict')) {\n enforcement = 'Strict'\n }\n\n // 4. If cookie-av's attribute-value is a case-insensitive match for\n // \"Lax\", set enforcement to \"Lax\".\n if (attributeValueLowercase.includes('lax')) {\n enforcement = 'Lax'\n }\n\n // 5. Append an attribute to the cookie-attribute-list with an\n // attribute-name of \"SameSite\" and an attribute-value of\n // enforcement.\n cookieAttributeList.sameSite = enforcement\n } else {\n cookieAttributeList.unparsed ??= []\n\n cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)\n }\n\n // 8. Return to Step 1 of this algorithm.\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n}\n\nmodule.exports = {\n parseSetCookie,\n parseUnparsedAttributes\n}\n","'use strict'\n\nconst { parseSetCookie } = require('./parse')\nconst { stringify } = require('./util')\nconst { webidl } = require('../fetch/webidl')\nconst { Headers } = require('../fetch/headers')\n\n/**\n * @typedef {Object} Cookie\n * @property {string} name\n * @property {string} value\n * @property {Date|number|undefined} expires\n * @property {number|undefined} maxAge\n * @property {string|undefined} domain\n * @property {string|undefined} path\n * @property {boolean|undefined} secure\n * @property {boolean|undefined} httpOnly\n * @property {'Strict'|'Lax'|'None'} sameSite\n * @property {string[]} unparsed\n */\n\n/**\n * @param {Headers} headers\n * @returns {Record}\n */\nfunction getCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookie = headers.get('cookie')\n const out = {}\n\n if (!cookie) {\n return out\n }\n\n for (const piece of cookie.split(';')) {\n const [name, ...value] = piece.split('=')\n\n out[name.trim()] = value.join('=')\n }\n\n return out\n}\n\n/**\n * @param {Headers} headers\n * @param {string} name\n * @param {{ path?: string, domain?: string }|undefined} attributes\n * @returns {void}\n */\nfunction deleteCookie (headers, name, attributes) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n name = webidl.converters.DOMString(name)\n attributes = webidl.converters.DeleteCookieAttributes(attributes)\n\n // Matches behavior of\n // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278\n setCookie(headers, {\n name,\n value: '',\n expires: new Date(0),\n ...attributes\n })\n}\n\n/**\n * @param {Headers} headers\n * @returns {Cookie[]}\n */\nfunction getSetCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookies = headers.getSetCookie()\n\n if (!cookies) {\n return []\n }\n\n return cookies.map((pair) => parseSetCookie(pair))\n}\n\n/**\n * @param {Headers} headers\n * @param {Cookie} cookie\n * @returns {void}\n */\nfunction setCookie (headers, cookie) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n cookie = webidl.converters.Cookie(cookie)\n\n const str = stringify(cookie)\n\n if (str) {\n headers.append('Set-Cookie', stringify(cookie))\n }\n}\n\nwebidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n }\n])\n\nwebidl.converters.Cookie = webidl.dictionaryConverter([\n {\n converter: webidl.converters.DOMString,\n key: 'name'\n },\n {\n converter: webidl.converters.DOMString,\n key: 'value'\n },\n {\n converter: webidl.nullableConverter((value) => {\n if (typeof value === 'number') {\n return webidl.converters['unsigned long long'](value)\n }\n\n return new Date(value)\n }),\n key: 'expires',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters['long long']),\n key: 'maxAge',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'secure',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'httpOnly',\n defaultValue: null\n },\n {\n converter: webidl.converters.USVString,\n key: 'sameSite',\n allowedValues: ['Strict', 'Lax', 'None']\n },\n {\n converter: webidl.sequenceConverter(webidl.converters.DOMString),\n key: 'unparsed',\n defaultValue: []\n }\n])\n\nmodule.exports = {\n getCookies,\n deleteCookie,\n getSetCookies,\n setCookie\n}\n","'use strict'\n\n// This is a Globally Unique Identifier unique used\n// to validate that the endpoint accepts websocket\n// connections.\n// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3\nconst uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\nconst states = {\n CONNECTING: 0,\n OPEN: 1,\n CLOSING: 2,\n CLOSED: 3\n}\n\nconst opcodes = {\n CONTINUATION: 0x0,\n TEXT: 0x1,\n BINARY: 0x2,\n CLOSE: 0x8,\n PING: 0x9,\n PONG: 0xA\n}\n\nconst maxUnsigned16Bit = 2 ** 16 - 1 // 65535\n\nconst parserStates = {\n INFO: 0,\n PAYLOADLENGTH_16: 2,\n PAYLOADLENGTH_64: 3,\n READ_DATA: 4\n}\n\nconst emptyBuffer = Buffer.allocUnsafe(0)\n\nmodule.exports = {\n uid,\n staticPropertyDescriptors,\n states,\n opcodes,\n maxUnsigned16Bit,\n parserStates,\n emptyBuffer\n}\n","'use strict'\n\nmodule.exports = {\n kWebSocketURL: Symbol('url'),\n kReadyState: Symbol('ready state'),\n kController: Symbol('controller'),\n kResponse: Symbol('response'),\n kBinaryType: Symbol('binary type'),\n kSentClose: Symbol('sent close'),\n kReceivedClose: Symbol('received close'),\n kByteParser: Symbol('byte parser')\n}\n","'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\nconst { MessagePort } = require('worker_threads')\n\n/**\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\n */\nclass MessageEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.MessageEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get data () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.data\n }\n\n get origin () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.origin\n }\n\n get lastEventId () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.lastEventId\n }\n\n get source () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.source\n }\n\n get ports () {\n webidl.brandCheck(this, MessageEvent)\n\n if (!Object.isFrozen(this.#eventInit.ports)) {\n Object.freeze(this.#eventInit.ports)\n }\n\n return this.#eventInit.ports\n }\n\n initMessageEvent (\n type,\n bubbles = false,\n cancelable = false,\n data = null,\n origin = '',\n lastEventId = '',\n source = null,\n ports = []\n ) {\n webidl.brandCheck(this, MessageEvent)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' })\n\n return new MessageEvent(type, {\n bubbles, cancelable, data, origin, lastEventId, source, ports\n })\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#the-closeevent-interface\n */\nclass CloseEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.CloseEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get wasClean () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.wasClean\n }\n\n get code () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.code\n }\n\n get reason () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.reason\n }\n}\n\n// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface\nclass ErrorEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' })\n\n super(type, eventInitDict)\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {})\n\n this.#eventInit = eventInitDict\n }\n\n get message () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.message\n }\n\n get filename () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.filename\n }\n\n get lineno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.lineno\n }\n\n get colno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.colno\n }\n\n get error () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.error\n }\n}\n\nObject.defineProperties(MessageEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'MessageEvent',\n configurable: true\n },\n data: kEnumerableProperty,\n origin: kEnumerableProperty,\n lastEventId: kEnumerableProperty,\n source: kEnumerableProperty,\n ports: kEnumerableProperty,\n initMessageEvent: kEnumerableProperty\n})\n\nObject.defineProperties(CloseEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'CloseEvent',\n configurable: true\n },\n reason: kEnumerableProperty,\n code: kEnumerableProperty,\n wasClean: kEnumerableProperty\n})\n\nObject.defineProperties(ErrorEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'ErrorEvent',\n configurable: true\n },\n message: kEnumerableProperty,\n filename: kEnumerableProperty,\n lineno: kEnumerableProperty,\n colno: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\nwebidl.converters.MessagePort = webidl.interfaceConverter(MessagePort)\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.MessagePort\n)\n\nconst eventInit = [\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.MessageEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'data',\n converter: webidl.converters.any,\n defaultValue: null\n },\n {\n key: 'origin',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lastEventId',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'source',\n // Node doesn't implement WindowProxy or ServiceWorker, so the only\n // valid value for source is a MessagePort.\n converter: webidl.nullableConverter(webidl.converters.MessagePort),\n defaultValue: null\n },\n {\n key: 'ports',\n converter: webidl.converters['sequence'],\n get defaultValue () {\n return []\n }\n }\n])\n\nwebidl.converters.CloseEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'wasClean',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'code',\n converter: webidl.converters['unsigned short'],\n defaultValue: 0\n },\n {\n key: 'reason',\n converter: webidl.converters.USVString,\n defaultValue: ''\n }\n])\n\nwebidl.converters.ErrorEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'message',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'filename',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lineno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'colno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'error',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = {\n MessageEvent,\n CloseEvent,\n ErrorEvent\n}\n","'use strict'\n\nconst { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require('./symbols')\nconst { states, opcodes } = require('./constants')\nconst { MessageEvent, ErrorEvent } = require('./events')\n\n/* globals Blob */\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isEstablished (ws) {\n // If the server's response is validated as provided for above, it is\n // said that _The WebSocket Connection is Established_ and that the\n // WebSocket Connection is in the OPEN state.\n return ws[kReadyState] === states.OPEN\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosing (ws) {\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n return ws[kReadyState] === states.CLOSING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosed (ws) {\n return ws[kReadyState] === states.CLOSED\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e\n * @param {EventTarget} target\n * @param {EventInit | undefined} eventInitDict\n */\nfunction fireEvent (e, target, eventConstructor = Event, eventInitDict) {\n // 1. If eventConstructor is not given, then let eventConstructor be Event.\n\n // 2. Let event be the result of creating an event given eventConstructor,\n // in the relevant realm of target.\n // 3. Initialize event’s type attribute to e.\n const event = new eventConstructor(e, eventInitDict) // eslint-disable-line new-cap\n\n // 4. Initialize any other IDL attributes of event as described in the\n // invocation of this algorithm.\n\n // 5. Return the result of dispatching event at target, with legacy target\n // override flag set if set.\n target.dispatchEvent(event)\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @param {import('./websocket').WebSocket} ws\n * @param {number} type Opcode\n * @param {Buffer} data application data\n */\nfunction websocketMessageReceived (ws, type, data) {\n // 1. If ready state is not OPEN (1), then return.\n if (ws[kReadyState] !== states.OPEN) {\n return\n }\n\n // 2. Let dataForEvent be determined by switching on type and binary type:\n let dataForEvent\n\n if (type === opcodes.TEXT) {\n // -> type indicates that the data is Text\n // a new DOMString containing data\n try {\n dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data)\n } catch {\n failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.')\n return\n }\n } else if (type === opcodes.BINARY) {\n if (ws[kBinaryType] === 'blob') {\n // -> type indicates that the data is Binary and binary type is \"blob\"\n // a new Blob object, created in the relevant Realm of the WebSocket\n // object, that represents data as its raw data\n dataForEvent = new Blob([data])\n } else {\n // -> type indicates that the data is Binary and binary type is \"arraybuffer\"\n // a new ArrayBuffer object, created in the relevant Realm of the\n // WebSocket object, whose contents are data\n dataForEvent = new Uint8Array(data).buffer\n }\n }\n\n // 3. Fire an event named message at the WebSocket object, using MessageEvent,\n // with the origin attribute initialized to the serialization of the WebSocket\n // object’s url's origin, and the data attribute initialized to dataForEvent.\n fireEvent('message', ws, MessageEvent, {\n origin: ws[kWebSocketURL].origin,\n data: dataForEvent\n })\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455\n * @see https://datatracker.ietf.org/doc/html/rfc2616\n * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407\n * @param {string} protocol\n */\nfunction isValidSubprotocol (protocol) {\n // If present, this value indicates one\n // or more comma-separated subprotocol the client wishes to speak,\n // ordered by preference. The elements that comprise this value\n // MUST be non-empty strings with characters in the range U+0021 to\n // U+007E not including separator characters as defined in\n // [RFC2616] and MUST all be unique strings.\n if (protocol.length === 0) {\n return false\n }\n\n for (const char of protocol) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 ||\n code > 0x7E ||\n char === '(' ||\n char === ')' ||\n char === '<' ||\n char === '>' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}' ||\n code === 32 || // SP\n code === 9 // HT\n ) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4\n * @param {number} code\n */\nfunction isValidStatusCode (code) {\n if (code >= 1000 && code < 1015) {\n return (\n code !== 1004 && // reserved\n code !== 1005 && // \"MUST NOT be set as a status code\"\n code !== 1006 // \"MUST NOT be set as a status code\"\n )\n }\n\n return code >= 3000 && code <= 4999\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @param {string|undefined} reason\n */\nfunction failWebsocketConnection (ws, reason) {\n const { [kController]: controller, [kResponse]: response } = ws\n\n controller.abort()\n\n if (response?.socket && !response.socket.destroyed) {\n response.socket.destroy()\n }\n\n if (reason) {\n fireEvent('error', ws, ErrorEvent, {\n error: new Error(reason)\n })\n }\n}\n\nmodule.exports = {\n isEstablished,\n isClosing,\n isClosed,\n fireEvent,\n isValidSubprotocol,\n isValidStatusCode,\n failWebsocketConnection,\n websocketMessageReceived\n}\n","'use strict'\n\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { uid, states } = require('./constants')\nconst {\n kReadyState,\n kSentClose,\n kByteParser,\n kReceivedClose\n} = require('./symbols')\nconst { fireEvent, failWebsocketConnection } = require('./util')\nconst { CloseEvent } = require('./events')\nconst { makeRequest } = require('../fetch/request')\nconst { fetching } = require('../fetch/index')\nconst { Headers } = require('../fetch/headers')\nconst { getGlobalDispatcher } = require('../global')\nconst { kHeadersList } = require('../core/symbols')\n\nconst channels = {}\nchannels.open = diagnosticsChannel.channel('undici:websocket:open')\nchannels.close = diagnosticsChannel.channel('undici:websocket:close')\nchannels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error')\n\n/** @type {import('crypto')} */\nlet crypto\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#concept-websocket-establish\n * @param {URL} url\n * @param {string|string[]} protocols\n * @param {import('./websocket').WebSocket} ws\n * @param {(response: any) => void} onEstablish\n * @param {Partial} options\n */\nfunction establishWebSocketConnection (url, protocols, ws, onEstablish, options) {\n // 1. Let requestURL be a copy of url, with its scheme set to \"http\", if url’s\n // scheme is \"ws\", and to \"https\" otherwise.\n const requestURL = url\n\n requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:'\n\n // 2. Let request be a new request, whose URL is requestURL, client is client,\n // service-workers mode is \"none\", referrer is \"no-referrer\", mode is\n // \"websocket\", credentials mode is \"include\", cache mode is \"no-store\" ,\n // and redirect mode is \"error\".\n const request = makeRequest({\n urlList: [requestURL],\n serviceWorkers: 'none',\n referrer: 'no-referrer',\n mode: 'websocket',\n credentials: 'include',\n cache: 'no-store',\n redirect: 'error'\n })\n\n // Note: undici extension, allow setting custom headers.\n if (options.headers) {\n const headersList = new Headers(options.headers)[kHeadersList]\n\n request.headersList = headersList\n }\n\n // 3. Append (`Upgrade`, `websocket`) to request’s header list.\n // 4. Append (`Connection`, `Upgrade`) to request’s header list.\n // Note: both of these are handled by undici currently.\n // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397\n\n // 5. Let keyValue be a nonce consisting of a randomly selected\n // 16-byte value that has been forgiving-base64-encoded and\n // isomorphic encoded.\n const keyValue = crypto.randomBytes(16).toString('base64')\n\n // 6. Append (`Sec-WebSocket-Key`, keyValue) to request’s\n // header list.\n request.headersList.append('sec-websocket-key', keyValue)\n\n // 7. Append (`Sec-WebSocket-Version`, `13`) to request’s\n // header list.\n request.headersList.append('sec-websocket-version', '13')\n\n // 8. For each protocol in protocols, combine\n // (`Sec-WebSocket-Protocol`, protocol) in request’s header\n // list.\n for (const protocol of protocols) {\n request.headersList.append('sec-websocket-protocol', protocol)\n }\n\n // 9. Let permessageDeflate be a user-agent defined\n // \"permessage-deflate\" extension header value.\n // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673\n // TODO: enable once permessage-deflate is supported\n const permessageDeflate = '' // 'permessage-deflate; 15'\n\n // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to\n // request’s header list.\n // request.headersList.append('sec-websocket-extensions', permessageDeflate)\n\n // 11. Fetch request with useParallelQueue set to true, and\n // processResponse given response being these steps:\n const controller = fetching({\n request,\n useParallelQueue: true,\n dispatcher: options.dispatcher ?? getGlobalDispatcher(),\n processResponse (response) {\n // 1. If response is a network error or its status is not 101,\n // fail the WebSocket connection.\n if (response.type === 'error' || response.status !== 101) {\n failWebsocketConnection(ws, 'Received network error or non-101 status code.')\n return\n }\n\n // 2. If protocols is not the empty list and extracting header\n // list values given `Sec-WebSocket-Protocol` and response’s\n // header list results in null, failure, or the empty byte\n // sequence, then fail the WebSocket connection.\n if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Server did not respond with sent protocols.')\n return\n }\n\n // 3. Follow the requirements stated step 2 to step 6, inclusive,\n // of the last set of steps in section 4.1 of The WebSocket\n // Protocol to validate response. This either results in fail\n // the WebSocket connection or the WebSocket connection is\n // established.\n\n // 2. If the response lacks an |Upgrade| header field or the |Upgrade|\n // header field contains a value that is not an ASCII case-\n // insensitive match for the value \"websocket\", the client MUST\n // _Fail the WebSocket Connection_.\n if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') {\n failWebsocketConnection(ws, 'Server did not set Upgrade header to \"websocket\".')\n return\n }\n\n // 3. If the response lacks a |Connection| header field or the\n // |Connection| header field doesn't contain a token that is an\n // ASCII case-insensitive match for the value \"Upgrade\", the client\n // MUST _Fail the WebSocket Connection_.\n if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') {\n failWebsocketConnection(ws, 'Server did not set Connection header to \"upgrade\".')\n return\n }\n\n // 4. If the response lacks a |Sec-WebSocket-Accept| header field or\n // the |Sec-WebSocket-Accept| contains a value other than the\n // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-\n // Key| (as a string, not base64-decoded) with the string \"258EAFA5-\n // E914-47DA-95CA-C5AB0DC85B11\" but ignoring any leading and\n // trailing whitespace, the client MUST _Fail the WebSocket\n // Connection_.\n const secWSAccept = response.headersList.get('Sec-WebSocket-Accept')\n const digest = crypto.createHash('sha1').update(keyValue + uid).digest('base64')\n if (secWSAccept !== digest) {\n failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.')\n return\n }\n\n // 5. If the response includes a |Sec-WebSocket-Extensions| header\n // field and this header field indicates the use of an extension\n // that was not present in the client's handshake (the server has\n // indicated an extension not requested by the client), the client\n // MUST _Fail the WebSocket Connection_. (The parsing of this\n // header field to determine which extensions are requested is\n // discussed in Section 9.1.)\n const secExtension = response.headersList.get('Sec-WebSocket-Extensions')\n\n if (secExtension !== null && secExtension !== permessageDeflate) {\n failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.')\n return\n }\n\n // 6. If the response includes a |Sec-WebSocket-Protocol| header field\n // and this header field indicates the use of a subprotocol that was\n // not present in the client's handshake (the server has indicated a\n // subprotocol not requested by the client), the client MUST _Fail\n // the WebSocket Connection_.\n const secProtocol = response.headersList.get('Sec-WebSocket-Protocol')\n\n if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.')\n return\n }\n\n response.socket.on('data', onSocketData)\n response.socket.on('close', onSocketClose)\n response.socket.on('error', onSocketError)\n\n if (channels.open.hasSubscribers) {\n channels.open.publish({\n address: response.socket.address(),\n protocol: secProtocol,\n extensions: secExtension\n })\n }\n\n onEstablish(response)\n }\n })\n\n return controller\n}\n\n/**\n * @param {Buffer} chunk\n */\nfunction onSocketData (chunk) {\n if (!this.ws[kByteParser].write(chunk)) {\n this.pause()\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4\n */\nfunction onSocketClose () {\n const { ws } = this\n\n // If the TCP connection was closed after the\n // WebSocket closing handshake was completed, the WebSocket connection\n // is said to have been closed _cleanly_.\n const wasClean = ws[kSentClose] && ws[kReceivedClose]\n\n let code = 1005\n let reason = ''\n\n const result = ws[kByteParser].closingInfo\n\n if (result) {\n code = result.code ?? 1005\n reason = result.reason\n } else if (!ws[kSentClose]) {\n // If _The WebSocket\n // Connection is Closed_ and no Close control frame was received by the\n // endpoint (such as could occur if the underlying transport connection\n // is lost), _The WebSocket Connection Close Code_ is considered to be\n // 1006.\n code = 1006\n }\n\n // 1. Change the ready state to CLOSED (3).\n ws[kReadyState] = states.CLOSED\n\n // 2. If the user agent was required to fail the WebSocket\n // connection, or if the WebSocket connection was closed\n // after being flagged as full, fire an event named error\n // at the WebSocket object.\n // TODO\n\n // 3. Fire an event named close at the WebSocket object,\n // using CloseEvent, with the wasClean attribute\n // initialized to true if the connection closed cleanly\n // and false otherwise, the code attribute initialized to\n // the WebSocket connection close code, and the reason\n // attribute initialized to the result of applying UTF-8\n // decode without BOM to the WebSocket connection close\n // reason.\n fireEvent('close', ws, CloseEvent, {\n wasClean, code, reason\n })\n\n if (channels.close.hasSubscribers) {\n channels.close.publish({\n websocket: ws,\n code,\n reason\n })\n }\n}\n\nfunction onSocketError (error) {\n const { ws } = this\n\n ws[kReadyState] = states.CLOSING\n\n if (channels.socketError.hasSubscribers) {\n channels.socketError.publish(error)\n }\n\n this.destroy()\n}\n\nmodule.exports = {\n establishWebSocketConnection\n}\n","'use strict'\n\nconst { maxUnsigned16Bit } = require('./constants')\n\n/** @type {import('crypto')} */\nlet crypto\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\nclass WebsocketFrameSend {\n /**\n * @param {Buffer|undefined} data\n */\n constructor (data) {\n this.frameData = data\n this.maskKey = crypto.randomBytes(4)\n }\n\n createFrame (opcode) {\n const bodyLength = this.frameData?.byteLength ?? 0\n\n /** @type {number} */\n let payloadLength = bodyLength // 0-125\n let offset = 6\n\n if (bodyLength > maxUnsigned16Bit) {\n offset += 8 // payload length is next 8 bytes\n payloadLength = 127\n } else if (bodyLength > 125) {\n offset += 2 // payload length is next 2 bytes\n payloadLength = 126\n }\n\n const buffer = Buffer.allocUnsafe(bodyLength + offset)\n\n // Clear first 2 bytes, everything else is overwritten\n buffer[0] = buffer[1] = 0\n buffer[0] |= 0x80 // FIN\n buffer[0] = (buffer[0] & 0xF0) + opcode // opcode\n\n /*! ws. MIT License. Einar Otto Stangvik */\n buffer[offset - 4] = this.maskKey[0]\n buffer[offset - 3] = this.maskKey[1]\n buffer[offset - 2] = this.maskKey[2]\n buffer[offset - 1] = this.maskKey[3]\n\n buffer[1] = payloadLength\n\n if (payloadLength === 126) {\n buffer.writeUInt16BE(bodyLength, 2)\n } else if (payloadLength === 127) {\n // Clear extended payload length\n buffer[2] = buffer[3] = 0\n buffer.writeUIntBE(bodyLength, 4, 6)\n }\n\n buffer[1] |= 0x80 // MASK\n\n // mask body\n for (let i = 0; i < bodyLength; i++) {\n buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4]\n }\n\n return buffer\n }\n}\n\nmodule.exports = {\n WebsocketFrameSend\n}\n","'use strict'\n\nconst { Writable } = require('stream')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { parserStates, opcodes, states, emptyBuffer } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik \n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nconst channels = {}\nchannels.ping = diagnosticsChannel.channel('undici:websocket:ping')\nchannels.pong = diagnosticsChannel.channel('undici:websocket:pong')\n\nclass ByteParser extends Writable {\n #buffers = []\n #byteOffset = 0\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n constructor (ws) {\n super()\n\n this.ws = ws\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n\n this.run(callback)\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (true) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.fin = (buffer[0] & 0x80) !== 0\n this.#info.opcode = buffer[0] & 0x0F\n\n // If we receive a fragmented message, we use the type of the first\n // frame to parse the full message as binary/text, when it's terminated\n this.#info.originalOpcode ??= this.#info.opcode\n\n this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION\n\n if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n const payloadLength = buffer[1] & 0x7F\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (this.#info.fragmented && payloadLength > 125) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n } else if (\n (this.#info.opcode === opcodes.PING ||\n this.#info.opcode === opcodes.PONG ||\n this.#info.opcode === opcodes.CLOSE) &&\n payloadLength > 125\n ) {\n // Control frames can have a payload length of 125 bytes MAX\n failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.')\n return\n } else if (this.#info.opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return\n }\n\n const body = this.consume(payloadLength)\n\n this.#info.closeInfo = this.parseCloseBody(false, body)\n\n if (!this.ws[kSentClose]) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n const body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = true\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n this.end()\n\n return\n } else if (this.#info.opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n const body = this.consume(payloadLength)\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n\n this.#state = parserStates.INFO\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n } else if (this.#info.opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n const body = this.consume(payloadLength)\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n\n // 2^31 is the maxinimum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n const lower = buffer.readUInt32BE(4)\n\n this.#info.payloadLength = (upper << 8) + lower\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n // If there is still more data in this chunk that needs to be read\n return callback()\n } else if (this.#byteOffset >= this.#info.payloadLength) {\n // If the server sent multiple frames in a single chunk\n\n const body = this.consume(this.#info.payloadLength)\n\n this.#fragments.push(body)\n\n // If the frame is unfragmented, or a fragmented frame was terminated,\n // a message was received\n if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) {\n const fullMessage = Buffer.concat(this.#fragments)\n\n websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage)\n\n this.#info = {}\n this.#fragments.length = 0\n }\n\n this.#state = parserStates.INFO\n }\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n break\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer|null}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n return null\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n parseCloseBody (onlyCode, data) {\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (onlyCode) {\n if (!isValidStatusCode(code)) {\n return null\n }\n\n return { code }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return null\n }\n\n try {\n // TODO: optimize this\n reason = new TextDecoder('utf-8', { fatal: true }).decode(reason)\n } catch {\n return null\n }\n\n return { code, reason }\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n","'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { DOMException } = require('../fetch/constants')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { getGlobalOrigin } = require('../fetch/global')\nconst { staticPropertyDescriptors, states, opcodes, emptyBuffer } = require('./constants')\nconst {\n kWebSocketURL,\n kReadyState,\n kController,\n kBinaryType,\n kResponse,\n kSentClose,\n kByteParser\n} = require('./symbols')\nconst { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = require('./util')\nconst { establishWebSocketConnection } = require('./connection')\nconst { WebsocketFrameSend } = require('./frame')\nconst { ByteParser } = require('./receiver')\nconst { kEnumerableProperty, isBlobLike } = require('../core/util')\nconst { getGlobalDispatcher } = require('../global')\nconst { types } = require('util')\n\nlet experimentalWarned = false\n\n// https://websockets.spec.whatwg.org/#interface-definition\nclass WebSocket extends EventTarget {\n #events = {\n open: null,\n error: null,\n close: null,\n message: null\n }\n\n #bufferedAmount = 0\n #protocol = ''\n #extensions = ''\n\n /**\n * @param {string} url\n * @param {string|string[]} protocols\n */\n constructor (url, protocols = []) {\n super()\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' })\n\n if (!experimentalWarned) {\n experimentalWarned = true\n process.emitWarning('WebSockets are experimental, expect them to change at any time.', {\n code: 'UNDICI-WS'\n })\n }\n\n const options = webidl.converters['DOMString or sequence or WebSocketInit'](protocols)\n\n url = webidl.converters.USVString(url)\n protocols = options.protocols\n\n // 1. Let baseURL be this's relevant settings object's API base URL.\n const baseURL = getGlobalOrigin()\n\n // 1. Let urlRecord be the result of applying the URL parser to url with baseURL.\n let urlRecord\n\n try {\n urlRecord = new URL(url, baseURL)\n } catch (e) {\n // 3. If urlRecord is failure, then throw a \"SyntaxError\" DOMException.\n throw new DOMException(e, 'SyntaxError')\n }\n\n // 4. If urlRecord’s scheme is \"http\", then set urlRecord’s scheme to \"ws\".\n if (urlRecord.protocol === 'http:') {\n urlRecord.protocol = 'ws:'\n } else if (urlRecord.protocol === 'https:') {\n // 5. Otherwise, if urlRecord’s scheme is \"https\", set urlRecord’s scheme to \"wss\".\n urlRecord.protocol = 'wss:'\n }\n\n // 6. If urlRecord’s scheme is not \"ws\" or \"wss\", then throw a \"SyntaxError\" DOMException.\n if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') {\n throw new DOMException(\n `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`,\n 'SyntaxError'\n )\n }\n\n // 7. If urlRecord’s fragment is non-null, then throw a \"SyntaxError\"\n // DOMException.\n if (urlRecord.hash || urlRecord.href.endsWith('#')) {\n throw new DOMException('Got fragment', 'SyntaxError')\n }\n\n // 8. If protocols is a string, set protocols to a sequence consisting\n // of just that string.\n if (typeof protocols === 'string') {\n protocols = [protocols]\n }\n\n // 9. If any of the values in protocols occur more than once or otherwise\n // fail to match the requirements for elements that comprise the value\n // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket\n // protocol, then throw a \"SyntaxError\" DOMException.\n if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n // 10. Set this's url to urlRecord.\n this[kWebSocketURL] = new URL(urlRecord.href)\n\n // 11. Let client be this's relevant settings object.\n\n // 12. Run this step in parallel:\n\n // 1. Establish a WebSocket connection given urlRecord, protocols,\n // and client.\n this[kController] = establishWebSocketConnection(\n urlRecord,\n protocols,\n this,\n (response) => this.#onConnectionEstablished(response),\n options\n )\n\n // Each WebSocket object has an associated ready state, which is a\n // number representing the state of the connection. Initially it must\n // be CONNECTING (0).\n this[kReadyState] = WebSocket.CONNECTING\n\n // The extensions attribute must initially return the empty string.\n\n // The protocol attribute must initially return the empty string.\n\n // Each WebSocket object has an associated binary type, which is a\n // BinaryType. Initially it must be \"blob\".\n this[kBinaryType] = 'blob'\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-close\n * @param {number|undefined} code\n * @param {string|undefined} reason\n */\n close (code = undefined, reason = undefined) {\n webidl.brandCheck(this, WebSocket)\n\n if (code !== undefined) {\n code = webidl.converters['unsigned short'](code, { clamp: true })\n }\n\n if (reason !== undefined) {\n reason = webidl.converters.USVString(reason)\n }\n\n // 1. If code is present, but is neither an integer equal to 1000 nor an\n // integer in the range 3000 to 4999, inclusive, throw an\n // \"InvalidAccessError\" DOMException.\n if (code !== undefined) {\n if (code !== 1000 && (code < 3000 || code > 4999)) {\n throw new DOMException('invalid code', 'InvalidAccessError')\n }\n }\n\n let reasonByteLength = 0\n\n // 2. If reason is present, then run these substeps:\n if (reason !== undefined) {\n // 1. Let reasonBytes be the result of encoding reason.\n // 2. If reasonBytes is longer than 123 bytes, then throw a\n // \"SyntaxError\" DOMException.\n reasonByteLength = Buffer.byteLength(reason)\n\n if (reasonByteLength > 123) {\n throw new DOMException(\n `Reason must be less than 123 bytes; received ${reasonByteLength}`,\n 'SyntaxError'\n )\n }\n }\n\n // 3. Run the first matching steps from the following list:\n if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) {\n // If this's ready state is CLOSING (2) or CLOSED (3)\n // Do nothing.\n } else if (!isEstablished(this)) {\n // If the WebSocket connection is not yet established\n // Fail the WebSocket connection and set this's ready state\n // to CLOSING (2).\n failWebsocketConnection(this, 'Connection was closed before it was established.')\n this[kReadyState] = WebSocket.CLOSING\n } else if (!isClosing(this)) {\n // If the WebSocket closing handshake has not yet been started\n // Start the WebSocket closing handshake and set this's ready\n // state to CLOSING (2).\n // - If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n // - If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n // - If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n\n const frame = new WebsocketFrameSend()\n\n // If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n\n // If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n if (code !== undefined && reason === undefined) {\n frame.frameData = Buffer.allocUnsafe(2)\n frame.frameData.writeUInt16BE(code, 0)\n } else if (code !== undefined && reason !== undefined) {\n // If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength)\n frame.frameData.writeUInt16BE(code, 0)\n // the body MAY contain UTF-8-encoded data with value /reason/\n frame.frameData.write(reason, 2, 'utf-8')\n } else {\n frame.frameData = emptyBuffer\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n socket.write(frame.createFrame(opcodes.CLOSE), (err) => {\n if (!err) {\n this[kSentClose] = true\n }\n })\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this[kReadyState] = states.CLOSING\n } else {\n // Otherwise\n // Set this's ready state to CLOSING (2).\n this[kReadyState] = WebSocket.CLOSING\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-send\n * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data\n */\n send (data) {\n webidl.brandCheck(this, WebSocket)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' })\n\n data = webidl.converters.WebSocketSendData(data)\n\n // 1. If this's ready state is CONNECTING, then throw an\n // \"InvalidStateError\" DOMException.\n if (this[kReadyState] === WebSocket.CONNECTING) {\n throw new DOMException('Sent before connected.', 'InvalidStateError')\n }\n\n // 2. Run the appropriate set of steps from the following list:\n // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1\n // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2\n\n if (!isEstablished(this) || isClosing(this)) {\n return\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n // If data is a string\n if (typeof data === 'string') {\n // If the WebSocket connection is established and the WebSocket\n // closing handshake has not yet started, then the user agent\n // must send a WebSocket Message comprised of the data argument\n // using a text frame opcode; if the data cannot be sent, e.g.\n // because it would need to be buffered but the buffer is full,\n // the user agent must flag the WebSocket as full and then close\n // the WebSocket connection. Any invocation of this method with a\n // string argument that does not throw an exception must increase\n // the bufferedAmount attribute by the number of bytes needed to\n // express the argument as UTF-8.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.TEXT)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (types.isArrayBuffer(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need\n // to be buffered but the buffer is full, the user agent must flag\n // the WebSocket as full and then close the WebSocket connection.\n // The data to be sent is the data stored in the buffer described\n // by the ArrayBuffer object. Any invocation of this method with an\n // ArrayBuffer argument that does not throw an exception must\n // increase the bufferedAmount attribute by the length of the\n // ArrayBuffer in bytes.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (ArrayBuffer.isView(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The\n // data to be sent is the data stored in the section of the buffer\n // described by the ArrayBuffer object that data references. Any\n // invocation of this method with this kind of argument that does\n // not throw an exception must increase the bufferedAmount attribute\n // by the length of data’s buffer in bytes.\n\n const ab = Buffer.from(data, data.byteOffset, data.byteLength)\n\n const frame = new WebsocketFrameSend(ab)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += ab.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= ab.byteLength\n })\n } else if (isBlobLike(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The data\n // to be sent is the raw data represented by the Blob object. Any\n // invocation of this method with a Blob argument that does not throw\n // an exception must increase the bufferedAmount attribute by the size\n // of the Blob object’s raw data, in bytes.\n\n const frame = new WebsocketFrameSend()\n\n data.arrayBuffer().then((ab) => {\n const value = Buffer.from(ab)\n frame.frameData = value\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n })\n }\n }\n\n get readyState () {\n webidl.brandCheck(this, WebSocket)\n\n // The readyState getter steps are to return this's ready state.\n return this[kReadyState]\n }\n\n get bufferedAmount () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#bufferedAmount\n }\n\n get url () {\n webidl.brandCheck(this, WebSocket)\n\n // The url getter steps are to return this's url, serialized.\n return URLSerializer(this[kWebSocketURL])\n }\n\n get extensions () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#extensions\n }\n\n get protocol () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#protocol\n }\n\n get onopen () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.open\n }\n\n set onopen (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.open) {\n this.removeEventListener('open', this.#events.open)\n }\n\n if (typeof fn === 'function') {\n this.#events.open = fn\n this.addEventListener('open', fn)\n } else {\n this.#events.open = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.error) {\n this.removeEventListener('error', this.#events.error)\n }\n\n if (typeof fn === 'function') {\n this.#events.error = fn\n this.addEventListener('error', fn)\n } else {\n this.#events.error = null\n }\n }\n\n get onclose () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.close\n }\n\n set onclose (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.close) {\n this.removeEventListener('close', this.#events.close)\n }\n\n if (typeof fn === 'function') {\n this.#events.close = fn\n this.addEventListener('close', fn)\n } else {\n this.#events.close = null\n }\n }\n\n get onmessage () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.message\n }\n\n set onmessage (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.message) {\n this.removeEventListener('message', this.#events.message)\n }\n\n if (typeof fn === 'function') {\n this.#events.message = fn\n this.addEventListener('message', fn)\n } else {\n this.#events.message = null\n }\n }\n\n get binaryType () {\n webidl.brandCheck(this, WebSocket)\n\n return this[kBinaryType]\n }\n\n set binaryType (type) {\n webidl.brandCheck(this, WebSocket)\n\n if (type !== 'blob' && type !== 'arraybuffer') {\n this[kBinaryType] = 'blob'\n } else {\n this[kBinaryType] = type\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n */\n #onConnectionEstablished (response) {\n // processResponse is called when the \"response’s header list has been received and initialized.\"\n // once this happens, the connection is open\n this[kResponse] = response\n\n const parser = new ByteParser(this)\n parser.on('drain', function onParserDrain () {\n this.ws[kResponse].socket.resume()\n })\n\n response.socket.ws = this\n this[kByteParser] = parser\n\n // 1. Change the ready state to OPEN (1).\n this[kReadyState] = states.OPEN\n\n // 2. Change the extensions attribute’s value to the extensions in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1\n const extensions = response.headersList.get('sec-websocket-extensions')\n\n if (extensions !== null) {\n this.#extensions = extensions\n }\n\n // 3. Change the protocol attribute’s value to the subprotocol in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9\n const protocol = response.headersList.get('sec-websocket-protocol')\n\n if (protocol !== null) {\n this.#protocol = protocol\n }\n\n // 4. Fire an event named open at the WebSocket object.\n fireEvent('open', this)\n }\n}\n\n// https://websockets.spec.whatwg.org/#dom-websocket-connecting\nWebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING\n// https://websockets.spec.whatwg.org/#dom-websocket-open\nWebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN\n// https://websockets.spec.whatwg.org/#dom-websocket-closing\nWebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING\n// https://websockets.spec.whatwg.org/#dom-websocket-closed\nWebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED\n\nObject.defineProperties(WebSocket.prototype, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors,\n url: kEnumerableProperty,\n readyState: kEnumerableProperty,\n bufferedAmount: kEnumerableProperty,\n onopen: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onclose: kEnumerableProperty,\n close: kEnumerableProperty,\n onmessage: kEnumerableProperty,\n binaryType: kEnumerableProperty,\n send: kEnumerableProperty,\n extensions: kEnumerableProperty,\n protocol: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'WebSocket',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(WebSocket, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors\n})\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.DOMString\n)\n\nwebidl.converters['DOMString or sequence'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) {\n return webidl.converters['sequence'](V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// This implements the propsal made in https://github.com/whatwg/websockets/issues/42\nwebidl.converters.WebSocketInit = webidl.dictionaryConverter([\n {\n key: 'protocols',\n converter: webidl.converters['DOMString or sequence'],\n get defaultValue () {\n return []\n }\n },\n {\n key: 'dispatcher',\n converter: (V) => V,\n get defaultValue () {\n return getGlobalDispatcher()\n }\n },\n {\n key: 'headers',\n converter: webidl.nullableConverter(webidl.converters.HeadersInit)\n }\n])\n\nwebidl.converters['DOMString or sequence or WebSocketInit'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) {\n return webidl.converters.WebSocketInit(V)\n }\n\n return { protocols: webidl.converters['DOMString or sequence'](V) }\n}\n\nwebidl.converters.WebSocketSendData = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) {\n return webidl.converters.BufferSource(V)\n }\n }\n\n return webidl.converters.USVString(V)\n}\n\nmodule.exports = {\n WebSocket\n}\n","'use strict'\n\nconst Client = require('./lib/client')\nconst Dispatcher = require('./lib/dispatcher')\nconst errors = require('./lib/core/errors')\nconst Pool = require('./lib/pool')\nconst BalancedPool = require('./lib/balanced-pool')\nconst Agent = require('./lib/agent')\nconst util = require('./lib/core/util')\nconst { InvalidArgumentError } = errors\nconst api = require('./lib/api')\nconst buildConnector = require('./lib/core/connect')\nconst MockClient = require('./lib/mock/mock-client')\nconst MockAgent = require('./lib/mock/mock-agent')\nconst MockPool = require('./lib/mock/mock-pool')\nconst mockErrors = require('./lib/mock/mock-errors')\nconst ProxyAgent = require('./lib/proxy-agent')\nconst RetryHandler = require('./lib/handler/RetryHandler')\nconst { getGlobalDispatcher, setGlobalDispatcher } = require('./lib/global')\nconst DecoratorHandler = require('./lib/handler/DecoratorHandler')\nconst RedirectHandler = require('./lib/handler/RedirectHandler')\nconst createRedirectInterceptor = require('./lib/interceptor/redirectInterceptor')\n\nlet hasCrypto\ntry {\n require('crypto')\n hasCrypto = true\n} catch {\n hasCrypto = false\n}\n\nObject.assign(Dispatcher.prototype, api)\n\nmodule.exports.Dispatcher = Dispatcher\nmodule.exports.Client = Client\nmodule.exports.Pool = Pool\nmodule.exports.BalancedPool = BalancedPool\nmodule.exports.Agent = Agent\nmodule.exports.ProxyAgent = ProxyAgent\nmodule.exports.RetryHandler = RetryHandler\n\nmodule.exports.DecoratorHandler = DecoratorHandler\nmodule.exports.RedirectHandler = RedirectHandler\nmodule.exports.createRedirectInterceptor = createRedirectInterceptor\n\nmodule.exports.buildConnector = buildConnector\nmodule.exports.errors = errors\n\nfunction makeDispatcher (fn) {\n return (url, opts, handler) => {\n if (typeof opts === 'function') {\n handler = opts\n opts = null\n }\n\n if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (opts != null && typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (opts && opts.path != null) {\n if (typeof opts.path !== 'string') {\n throw new InvalidArgumentError('invalid opts.path')\n }\n\n let path = opts.path\n if (!opts.path.startsWith('/')) {\n path = `/${path}`\n }\n\n url = new URL(util.parseOrigin(url).origin + path)\n } else {\n if (!opts) {\n opts = typeof url === 'object' ? url : {}\n }\n\n url = util.parseURL(url)\n }\n\n const { agent, dispatcher = getGlobalDispatcher() } = opts\n\n if (agent) {\n throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?')\n }\n\n return fn.call(dispatcher, {\n ...opts,\n origin: url.origin,\n path: url.search ? `${url.pathname}${url.search}` : url.pathname,\n method: opts.method || (opts.body ? 'PUT' : 'GET')\n }, handler)\n }\n}\n\nmodule.exports.setGlobalDispatcher = setGlobalDispatcher\nmodule.exports.getGlobalDispatcher = getGlobalDispatcher\n\nif (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) {\n let fetchImpl = null\n module.exports.fetch = async function fetch (resource) {\n if (!fetchImpl) {\n fetchImpl = require('./lib/fetch').fetch\n }\n\n try {\n return await fetchImpl(...arguments)\n } catch (err) {\n if (typeof err === 'object') {\n Error.captureStackTrace(err, this)\n }\n\n throw err\n }\n }\n module.exports.Headers = require('./lib/fetch/headers').Headers\n module.exports.Response = require('./lib/fetch/response').Response\n module.exports.Request = require('./lib/fetch/request').Request\n module.exports.FormData = require('./lib/fetch/formdata').FormData\n module.exports.File = require('./lib/fetch/file').File\n module.exports.FileReader = require('./lib/fileapi/filereader').FileReader\n\n const { setGlobalOrigin, getGlobalOrigin } = require('./lib/fetch/global')\n\n module.exports.setGlobalOrigin = setGlobalOrigin\n module.exports.getGlobalOrigin = getGlobalOrigin\n\n const { CacheStorage } = require('./lib/cache/cachestorage')\n const { kConstruct } = require('./lib/cache/symbols')\n\n // Cache & CacheStorage are tightly coupled with fetch. Even if it may run\n // in an older version of Node, it doesn't have any use without fetch.\n module.exports.caches = new CacheStorage(kConstruct)\n}\n\nif (util.nodeMajor >= 16) {\n const { deleteCookie, getCookies, getSetCookies, setCookie } = require('./lib/cookies')\n\n module.exports.deleteCookie = deleteCookie\n module.exports.getCookies = getCookies\n module.exports.getSetCookies = getSetCookies\n module.exports.setCookie = setCookie\n\n const { parseMIMEType, serializeAMimeType } = require('./lib/fetch/dataURL')\n\n module.exports.parseMIMEType = parseMIMEType\n module.exports.serializeAMimeType = serializeAMimeType\n}\n\nif (util.nodeMajor >= 18 && hasCrypto) {\n const { WebSocket } = require('./lib/websocket/websocket')\n\n module.exports.WebSocket = WebSocket\n}\n\nmodule.exports.request = makeDispatcher(api.request)\nmodule.exports.stream = makeDispatcher(api.stream)\nmodule.exports.pipeline = makeDispatcher(api.pipeline)\nmodule.exports.connect = makeDispatcher(api.connect)\nmodule.exports.upgrade = makeDispatcher(api.upgrade)\n\nmodule.exports.MockClient = MockClient\nmodule.exports.MockPool = MockPool\nmodule.exports.MockAgent = MockAgent\nmodule.exports.mockErrors = mockErrors\n","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nconst undici_1 = require(\"undici\");\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes || (exports.HttpCodes = HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers || (exports.Headers = Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes || (exports.MediaTypes = MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n readBodyBuffer() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n const chunks = [];\n this.message.on('data', (chunk) => {\n chunks.push(chunk);\n });\n this.message.on('end', () => {\n resolve(Buffer.concat(chunks));\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n getAgentDispatcher(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (!useProxy) {\n return;\n }\n return this._getProxyAgentDispatcher(parsedUrl, proxyUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (!useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if tunneling agent isn't assigned create a new agent\n if (!agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _getProxyAgentDispatcher(parsedUrl, proxyUrl) {\n let proxyAgent;\n if (this._keepAlive) {\n proxyAgent = this._proxyAgentDispatcher;\n }\n // if agent is already assigned use that agent.\n if (proxyAgent) {\n return proxyAgent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n proxyAgent = new undici_1.ProxyAgent(Object.assign({ uri: proxyUrl.href, pipelining: !this._keepAlive ? 0 : 1 }, ((proxyUrl.username || proxyUrl.password) && {\n token: `Basic ${Buffer.from(`${proxyUrl.username}:${proxyUrl.password}`).toString('base64')}`\n })));\n this._proxyAgentDispatcher = proxyAgent;\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n proxyAgent.options = Object.assign(proxyAgent.options.requestTls || {}, {\n rejectUnauthorized: false\n });\n }\n return proxyAgent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0;\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Bearer ${this.token}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n//# sourceMappingURL=auth.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/lib/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n (0, core_1.debug)(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n (0, core_1.setSecret)(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0;\nconst os_1 = require(\"os\");\nconst fs_1 = require(\"fs\");\nconst { access, appendFile, writeFile } = fs_1.promises;\nexports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY';\nexports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary';\nclass Summary {\n constructor() {\n this._buffer = '';\n }\n /**\n * Finds the summary file path from the environment, rejects if env var is not found or file does not exist\n * Also checks r/w permissions.\n *\n * @returns step summary file path\n */\n filePath() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._filePath) {\n return this._filePath;\n }\n const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR];\n if (!pathFromEnv) {\n throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);\n }\n try {\n yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK);\n }\n catch (_a) {\n throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);\n }\n this._filePath = pathFromEnv;\n return this._filePath;\n });\n }\n /**\n * Wraps content in an HTML tag, adding any HTML attributes\n *\n * @param {string} tag HTML tag to wrap\n * @param {string | null} content content within the tag\n * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add\n *\n * @returns {string} content wrapped in HTML element\n */\n wrap(tag, content, attrs = {}) {\n const htmlAttrs = Object.entries(attrs)\n .map(([key, value]) => ` ${key}=\"${value}\"`)\n .join('');\n if (!content) {\n return `<${tag}${htmlAttrs}>`;\n }\n return `<${tag}${htmlAttrs}>${content}`;\n }\n /**\n * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.\n *\n * @param {SummaryWriteOptions} [options] (optional) options for write operation\n *\n * @returns {Promise} summary instance\n */\n write(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);\n const filePath = yield this.filePath();\n const writeFunc = overwrite ? writeFile : appendFile;\n yield writeFunc(filePath, this._buffer, { encoding: 'utf8' });\n return this.emptyBuffer();\n });\n }\n /**\n * Clears the summary buffer and wipes the summary file\n *\n * @returns {Summary} summary instance\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.emptyBuffer().write({ overwrite: true });\n });\n }\n /**\n * Returns the current summary buffer as a string\n *\n * @returns {string} string of summary buffer\n */\n stringify() {\n return this._buffer;\n }\n /**\n * If the summary buffer is empty\n *\n * @returns {boolen} true if the buffer is empty\n */\n isEmptyBuffer() {\n return this._buffer.length === 0;\n }\n /**\n * Resets the summary buffer without writing to summary file\n *\n * @returns {Summary} summary instance\n */\n emptyBuffer() {\n this._buffer = '';\n return this;\n }\n /**\n * Adds raw text to the summary buffer\n *\n * @param {string} text content to add\n * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)\n *\n * @returns {Summary} summary instance\n */\n addRaw(text, addEOL = false) {\n this._buffer += text;\n return addEOL ? this.addEOL() : this;\n }\n /**\n * Adds the operating system-specific end-of-line marker to the buffer\n *\n * @returns {Summary} summary instance\n */\n addEOL() {\n return this.addRaw(os_1.EOL);\n }\n /**\n * Adds an HTML codeblock to the summary buffer\n *\n * @param {string} code content to render within fenced code block\n * @param {string} lang (optional) language to syntax highlight code\n *\n * @returns {Summary} summary instance\n */\n addCodeBlock(code, lang) {\n const attrs = Object.assign({}, (lang && { lang }));\n const element = this.wrap('pre', this.wrap('code', code), attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML list to the summary buffer\n *\n * @param {string[]} items list of items to render\n * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)\n *\n * @returns {Summary} summary instance\n */\n addList(items, ordered = false) {\n const tag = ordered ? 'ol' : 'ul';\n const listItems = items.map(item => this.wrap('li', item)).join('');\n const element = this.wrap(tag, listItems);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML table to the summary buffer\n *\n * @param {SummaryTableCell[]} rows table rows\n *\n * @returns {Summary} summary instance\n */\n addTable(rows) {\n const tableBody = rows\n .map(row => {\n const cells = row\n .map(cell => {\n if (typeof cell === 'string') {\n return this.wrap('td', cell);\n }\n const { header, data, colspan, rowspan } = cell;\n const tag = header ? 'th' : 'td';\n const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan }));\n return this.wrap(tag, data, attrs);\n })\n .join('');\n return this.wrap('tr', cells);\n })\n .join('');\n const element = this.wrap('table', tableBody);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds a collapsable HTML details element to the summary buffer\n *\n * @param {string} label text for the closed state\n * @param {string} content collapsable content\n *\n * @returns {Summary} summary instance\n */\n addDetails(label, content) {\n const element = this.wrap('details', this.wrap('summary', label) + content);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML image tag to the summary buffer\n *\n * @param {string} src path to the image you to embed\n * @param {string} alt text description of the image\n * @param {SummaryImageOptions} options (optional) addition image attributes\n *\n * @returns {Summary} summary instance\n */\n addImage(src, alt, options) {\n const { width, height } = options || {};\n const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height }));\n const element = this.wrap('img', null, Object.assign({ src, alt }, attrs));\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML section heading element\n *\n * @param {string} text heading text\n * @param {number | string} [level=1] (optional) the heading level, default: 1\n *\n * @returns {Summary} summary instance\n */\n addHeading(text, level) {\n const tag = `h${level}`;\n const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag)\n ? tag\n : 'h1';\n const element = this.wrap(allowedTag, text);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML thematic break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addSeparator() {\n const element = this.wrap('hr', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML line break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addBreak() {\n const element = this.wrap('br', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML blockquote to the summary buffer\n *\n * @param {string} text quote text\n * @param {string} cite (optional) citation url\n *\n * @returns {Summary} summary instance\n */\n addQuote(text, cite) {\n const attrs = Object.assign({}, (cite && { cite }));\n const element = this.wrap('blockquote', text, attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML anchor tag to the summary buffer\n *\n * @param {string} text link text/content\n * @param {string} href hyperlink\n *\n * @returns {Summary} summary instance\n */\n addLink(text, href) {\n const element = this.wrap('a', text, { href });\n return this.addRaw(element).addEOL();\n }\n}\nconst _summary = new Summary();\n/**\n * @deprecated use `core.summary`\n */\nexports.markdownSummary = _summary;\nexports.summary = _summary;\n//# sourceMappingURL=summary.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0;\nconst path = __importStar(require(\"path\"));\n/**\n * toPosixPath converts the given path to the posix form. On Windows, \\\\ will be\n * replaced with /.\n *\n * @param pth. Path to transform.\n * @return string Posix path.\n */\nfunction toPosixPath(pth) {\n return pth.replace(/[\\\\]/g, '/');\n}\nexports.toPosixPath = toPosixPath;\n/**\n * toWin32Path converts the given path to the win32 form. On Linux, / will be\n * replaced with \\\\.\n *\n * @param pth. Path to transform.\n * @return string Win32 path.\n */\nfunction toWin32Path(pth) {\n return pth.replace(/[/]/g, '\\\\');\n}\nexports.toWin32Path = toWin32Path;\n/**\n * toPlatformPath converts the given path to a platform-specific path. It does\n * this by replacing instances of / and \\ with the platform-specific path\n * separator.\n *\n * @param pth The path to platformize.\n * @return string The platform-specific path.\n */\nfunction toPlatformPath(pth) {\n return pth.replace(/[/\\\\]/g, path.sep);\n}\nexports.toPlatformPath = toPlatformPath;\n//# sourceMappingURL=path-utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCmdPath = exports.tryGetExecutablePath = exports.isRooted = exports.isDirectory = exports.exists = exports.READONLY = exports.UV_FS_O_EXLOCK = exports.IS_WINDOWS = exports.unlink = exports.symlink = exports.stat = exports.rmdir = exports.rm = exports.rename = exports.readlink = exports.readdir = exports.open = exports.mkdir = exports.lstat = exports.copyFile = exports.chmod = void 0;\nconst fs = __importStar(require(\"fs\"));\nconst path = __importStar(require(\"path\"));\n_a = fs.promises\n// export const {open} = 'fs'\n, exports.chmod = _a.chmod, exports.copyFile = _a.copyFile, exports.lstat = _a.lstat, exports.mkdir = _a.mkdir, exports.open = _a.open, exports.readdir = _a.readdir, exports.readlink = _a.readlink, exports.rename = _a.rename, exports.rm = _a.rm, exports.rmdir = _a.rmdir, exports.stat = _a.stat, exports.symlink = _a.symlink, exports.unlink = _a.unlink;\n// export const {open} = 'fs'\nexports.IS_WINDOWS = process.platform === 'win32';\n// See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691\nexports.UV_FS_O_EXLOCK = 0x10000000;\nexports.READONLY = fs.constants.O_RDONLY;\nfunction exists(fsPath) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n yield exports.stat(fsPath);\n }\n catch (err) {\n if (err.code === 'ENOENT') {\n return false;\n }\n throw err;\n }\n return true;\n });\n}\nexports.exists = exists;\nfunction isDirectory(fsPath, useStat = false) {\n return __awaiter(this, void 0, void 0, function* () {\n const stats = useStat ? yield exports.stat(fsPath) : yield exports.lstat(fsPath);\n return stats.isDirectory();\n });\n}\nexports.isDirectory = isDirectory;\n/**\n * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like:\n * \\, \\hello, \\\\hello\\share, C:, and C:\\hello (and corresponding alternate separator cases).\n */\nfunction isRooted(p) {\n p = normalizeSeparators(p);\n if (!p) {\n throw new Error('isRooted() parameter \"p\" cannot be empty');\n }\n if (exports.IS_WINDOWS) {\n return (p.startsWith('\\\\') || /^[A-Z]:/i.test(p) // e.g. \\ or \\hello or \\\\hello\n ); // e.g. C: or C:\\hello\n }\n return p.startsWith('/');\n}\nexports.isRooted = isRooted;\n/**\n * Best effort attempt to determine whether a file exists and is executable.\n * @param filePath file path to check\n * @param extensions additional file extensions to try\n * @return if file exists and is executable, returns the file path. otherwise empty string.\n */\nfunction tryGetExecutablePath(filePath, extensions) {\n return __awaiter(this, void 0, void 0, function* () {\n let stats = undefined;\n try {\n // test file exists\n stats = yield exports.stat(filePath);\n }\n catch (err) {\n if (err.code !== 'ENOENT') {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n }\n if (stats && stats.isFile()) {\n if (exports.IS_WINDOWS) {\n // on Windows, test for valid extension\n const upperExt = path.extname(filePath).toUpperCase();\n if (extensions.some(validExt => validExt.toUpperCase() === upperExt)) {\n return filePath;\n }\n }\n else {\n if (isUnixExecutable(stats)) {\n return filePath;\n }\n }\n }\n // try each extension\n const originalFilePath = filePath;\n for (const extension of extensions) {\n filePath = originalFilePath + extension;\n stats = undefined;\n try {\n stats = yield exports.stat(filePath);\n }\n catch (err) {\n if (err.code !== 'ENOENT') {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n }\n if (stats && stats.isFile()) {\n if (exports.IS_WINDOWS) {\n // preserve the case of the actual file (since an extension was appended)\n try {\n const directory = path.dirname(filePath);\n const upperName = path.basename(filePath).toUpperCase();\n for (const actualName of yield exports.readdir(directory)) {\n if (upperName === actualName.toUpperCase()) {\n filePath = path.join(directory, actualName);\n break;\n }\n }\n }\n catch (err) {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`);\n }\n return filePath;\n }\n else {\n if (isUnixExecutable(stats)) {\n return filePath;\n }\n }\n }\n }\n return '';\n });\n}\nexports.tryGetExecutablePath = tryGetExecutablePath;\nfunction normalizeSeparators(p) {\n p = p || '';\n if (exports.IS_WINDOWS) {\n // convert slashes on Windows\n p = p.replace(/\\//g, '\\\\');\n // remove redundant slashes\n return p.replace(/\\\\\\\\+/g, '\\\\');\n }\n // remove redundant slashes\n return p.replace(/\\/\\/+/g, '/');\n}\n// on Mac/Linux, test the execute bit\n// R W X R W X R W X\n// 256 128 64 32 16 8 4 2 1\nfunction isUnixExecutable(stats) {\n return ((stats.mode & 1) > 0 ||\n ((stats.mode & 8) > 0 && stats.gid === process.getgid()) ||\n ((stats.mode & 64) > 0 && stats.uid === process.getuid()));\n}\n// Get the path of cmd.exe in windows\nfunction getCmdPath() {\n var _a;\n return (_a = process.env['COMSPEC']) !== null && _a !== void 0 ? _a : `cmd.exe`;\n}\nexports.getCmdPath = getCmdPath;\n//# sourceMappingURL=io-util.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findInPath = exports.which = exports.mkdirP = exports.rmRF = exports.mv = exports.cp = void 0;\nconst assert_1 = require(\"assert\");\nconst path = __importStar(require(\"path\"));\nconst ioUtil = __importStar(require(\"./io-util\"));\n/**\n * Copies a file or folder.\n * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See CopyOptions.\n */\nfunction cp(source, dest, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const { force, recursive, copySourceDirectory } = readCopyOptions(options);\n const destStat = (yield ioUtil.exists(dest)) ? yield ioUtil.stat(dest) : null;\n // Dest is an existing file, but not forcing\n if (destStat && destStat.isFile() && !force) {\n return;\n }\n // If dest is an existing directory, should copy inside.\n const newDest = destStat && destStat.isDirectory() && copySourceDirectory\n ? path.join(dest, path.basename(source))\n : dest;\n if (!(yield ioUtil.exists(source))) {\n throw new Error(`no such file or directory: ${source}`);\n }\n const sourceStat = yield ioUtil.stat(source);\n if (sourceStat.isDirectory()) {\n if (!recursive) {\n throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`);\n }\n else {\n yield cpDirRecursive(source, newDest, 0, force);\n }\n }\n else {\n if (path.relative(source, newDest) === '') {\n // a file cannot be copied to itself\n throw new Error(`'${newDest}' and '${source}' are the same file`);\n }\n yield copyFile(source, newDest, force);\n }\n });\n}\nexports.cp = cp;\n/**\n * Moves a path.\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See MoveOptions.\n */\nfunction mv(source, dest, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n if (yield ioUtil.exists(dest)) {\n let destExists = true;\n if (yield ioUtil.isDirectory(dest)) {\n // If dest is directory copy src into dest\n dest = path.join(dest, path.basename(source));\n destExists = yield ioUtil.exists(dest);\n }\n if (destExists) {\n if (options.force == null || options.force) {\n yield rmRF(dest);\n }\n else {\n throw new Error('Destination already exists');\n }\n }\n }\n yield mkdirP(path.dirname(dest));\n yield ioUtil.rename(source, dest);\n });\n}\nexports.mv = mv;\n/**\n * Remove a path recursively with force\n *\n * @param inputPath path to remove\n */\nfunction rmRF(inputPath) {\n return __awaiter(this, void 0, void 0, function* () {\n if (ioUtil.IS_WINDOWS) {\n // Check for invalid characters\n // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file\n if (/[*\"<>|]/.test(inputPath)) {\n throw new Error('File path must not contain `*`, `\"`, `<`, `>` or `|` on Windows');\n }\n }\n try {\n // note if path does not exist, error is silent\n yield ioUtil.rm(inputPath, {\n force: true,\n maxRetries: 3,\n recursive: true,\n retryDelay: 300\n });\n }\n catch (err) {\n throw new Error(`File was unable to be removed ${err}`);\n }\n });\n}\nexports.rmRF = rmRF;\n/**\n * Make a directory. Creates the full path with folders in between\n * Will throw if it fails\n *\n * @param fsPath path to create\n * @returns Promise\n */\nfunction mkdirP(fsPath) {\n return __awaiter(this, void 0, void 0, function* () {\n assert_1.ok(fsPath, 'a path argument must be provided');\n yield ioUtil.mkdir(fsPath, { recursive: true });\n });\n}\nexports.mkdirP = mkdirP;\n/**\n * Returns path of a tool had the tool actually been invoked. Resolves via paths.\n * If you check and the tool does not exist, it will throw.\n *\n * @param tool name of the tool\n * @param check whether to check if tool exists\n * @returns Promise path to tool\n */\nfunction which(tool, check) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!tool) {\n throw new Error(\"parameter 'tool' is required\");\n }\n // recursive when check=true\n if (check) {\n const result = yield which(tool, false);\n if (!result) {\n if (ioUtil.IS_WINDOWS) {\n throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);\n }\n else {\n throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);\n }\n }\n return result;\n }\n const matches = yield findInPath(tool);\n if (matches && matches.length > 0) {\n return matches[0];\n }\n return '';\n });\n}\nexports.which = which;\n/**\n * Returns a list of all occurrences of the given tool on the system path.\n *\n * @returns Promise the paths of the tool\n */\nfunction findInPath(tool) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!tool) {\n throw new Error(\"parameter 'tool' is required\");\n }\n // build the list of extensions to try\n const extensions = [];\n if (ioUtil.IS_WINDOWS && process.env['PATHEXT']) {\n for (const extension of process.env['PATHEXT'].split(path.delimiter)) {\n if (extension) {\n extensions.push(extension);\n }\n }\n }\n // if it's rooted, return it if exists. otherwise return empty.\n if (ioUtil.isRooted(tool)) {\n const filePath = yield ioUtil.tryGetExecutablePath(tool, extensions);\n if (filePath) {\n return [filePath];\n }\n return [];\n }\n // if any path separators, return empty\n if (tool.includes(path.sep)) {\n return [];\n }\n // build the list of directories\n //\n // Note, technically \"where\" checks the current directory on Windows. From a toolkit perspective,\n // it feels like we should not do this. Checking the current directory seems like more of a use\n // case of a shell, and the which() function exposed by the toolkit should strive for consistency\n // across platforms.\n const directories = [];\n if (process.env.PATH) {\n for (const p of process.env.PATH.split(path.delimiter)) {\n if (p) {\n directories.push(p);\n }\n }\n }\n // find all matches\n const matches = [];\n for (const directory of directories) {\n const filePath = yield ioUtil.tryGetExecutablePath(path.join(directory, tool), extensions);\n if (filePath) {\n matches.push(filePath);\n }\n }\n return matches;\n });\n}\nexports.findInPath = findInPath;\nfunction readCopyOptions(options) {\n const force = options.force == null ? true : options.force;\n const recursive = Boolean(options.recursive);\n const copySourceDirectory = options.copySourceDirectory == null\n ? true\n : Boolean(options.copySourceDirectory);\n return { force, recursive, copySourceDirectory };\n}\nfunction cpDirRecursive(sourceDir, destDir, currentDepth, force) {\n return __awaiter(this, void 0, void 0, function* () {\n // Ensure there is not a run away recursive copy\n if (currentDepth >= 255)\n return;\n currentDepth++;\n yield mkdirP(destDir);\n const files = yield ioUtil.readdir(sourceDir);\n for (const fileName of files) {\n const srcFile = `${sourceDir}/${fileName}`;\n const destFile = `${destDir}/${fileName}`;\n const srcFileStat = yield ioUtil.lstat(srcFile);\n if (srcFileStat.isDirectory()) {\n // Recurse\n yield cpDirRecursive(srcFile, destFile, currentDepth, force);\n }\n else {\n yield copyFile(srcFile, destFile, force);\n }\n }\n // Change the mode for the newly created directory\n yield ioUtil.chmod(destDir, (yield ioUtil.stat(sourceDir)).mode);\n });\n}\n// Buffered file copy\nfunction copyFile(srcFile, destFile, force) {\n return __awaiter(this, void 0, void 0, function* () {\n if ((yield ioUtil.lstat(srcFile)).isSymbolicLink()) {\n // unlink/re-link it\n try {\n yield ioUtil.lstat(destFile);\n yield ioUtil.unlink(destFile);\n }\n catch (e) {\n // Try to override file permission\n if (e.code === 'EPERM') {\n yield ioUtil.chmod(destFile, '0666');\n yield ioUtil.unlink(destFile);\n }\n // other errors = it doesn't exist, no work to do\n }\n // Copy over symlink\n const symlinkFull = yield ioUtil.readlink(srcFile);\n yield ioUtil.symlink(symlinkFull, destFile, ioUtil.IS_WINDOWS ? 'junction' : null);\n }\n else if (!(yield ioUtil.exists(destFile)) || force) {\n yield ioUtil.copyFile(srcFile, destFile);\n }\n });\n}\n//# sourceMappingURL=io.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.argStringToArray = exports.ToolRunner = void 0;\nconst os = __importStar(require(\"os\"));\nconst events = __importStar(require(\"events\"));\nconst child = __importStar(require(\"child_process\"));\nconst path = __importStar(require(\"path\"));\nconst io = __importStar(require(\"@actions/io\"));\nconst ioUtil = __importStar(require(\"@actions/io/lib/io-util\"));\nconst timers_1 = require(\"timers\");\n/* eslint-disable @typescript-eslint/unbound-method */\nconst IS_WINDOWS = process.platform === 'win32';\n/*\n * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way.\n */\nclass ToolRunner extends events.EventEmitter {\n constructor(toolPath, args, options) {\n super();\n if (!toolPath) {\n throw new Error(\"Parameter 'toolPath' cannot be null or empty.\");\n }\n this.toolPath = toolPath;\n this.args = args || [];\n this.options = options || {};\n }\n _debug(message) {\n if (this.options.listeners && this.options.listeners.debug) {\n this.options.listeners.debug(message);\n }\n }\n _getCommandString(options, noPrefix) {\n const toolPath = this._getSpawnFileName();\n const args = this._getSpawnArgs(options);\n let cmd = noPrefix ? '' : '[command]'; // omit prefix when piped to a second tool\n if (IS_WINDOWS) {\n // Windows + cmd file\n if (this._isCmdFile()) {\n cmd += toolPath;\n for (const a of args) {\n cmd += ` ${a}`;\n }\n }\n // Windows + verbatim\n else if (options.windowsVerbatimArguments) {\n cmd += `\"${toolPath}\"`;\n for (const a of args) {\n cmd += ` ${a}`;\n }\n }\n // Windows (regular)\n else {\n cmd += this._windowsQuoteCmdArg(toolPath);\n for (const a of args) {\n cmd += ` ${this._windowsQuoteCmdArg(a)}`;\n }\n }\n }\n else {\n // OSX/Linux - this can likely be improved with some form of quoting.\n // creating processes on Unix is fundamentally different than Windows.\n // on Unix, execvp() takes an arg array.\n cmd += toolPath;\n for (const a of args) {\n cmd += ` ${a}`;\n }\n }\n return cmd;\n }\n _processLineBuffer(data, strBuffer, onLine) {\n try {\n let s = strBuffer + data.toString();\n let n = s.indexOf(os.EOL);\n while (n > -1) {\n const line = s.substring(0, n);\n onLine(line);\n // the rest of the string ...\n s = s.substring(n + os.EOL.length);\n n = s.indexOf(os.EOL);\n }\n return s;\n }\n catch (err) {\n // streaming lines to console is best effort. Don't fail a build.\n this._debug(`error processing line. Failed with error ${err}`);\n return '';\n }\n }\n _getSpawnFileName() {\n if (IS_WINDOWS) {\n if (this._isCmdFile()) {\n return process.env['COMSPEC'] || 'cmd.exe';\n }\n }\n return this.toolPath;\n }\n _getSpawnArgs(options) {\n if (IS_WINDOWS) {\n if (this._isCmdFile()) {\n let argline = `/D /S /C \"${this._windowsQuoteCmdArg(this.toolPath)}`;\n for (const a of this.args) {\n argline += ' ';\n argline += options.windowsVerbatimArguments\n ? a\n : this._windowsQuoteCmdArg(a);\n }\n argline += '\"';\n return [argline];\n }\n }\n return this.args;\n }\n _endsWith(str, end) {\n return str.endsWith(end);\n }\n _isCmdFile() {\n const upperToolPath = this.toolPath.toUpperCase();\n return (this._endsWith(upperToolPath, '.CMD') ||\n this._endsWith(upperToolPath, '.BAT'));\n }\n _windowsQuoteCmdArg(arg) {\n // for .exe, apply the normal quoting rules that libuv applies\n if (!this._isCmdFile()) {\n return this._uvQuoteCmdArg(arg);\n }\n // otherwise apply quoting rules specific to the cmd.exe command line parser.\n // the libuv rules are generic and are not designed specifically for cmd.exe\n // command line parser.\n //\n // for a detailed description of the cmd.exe command line parser, refer to\n // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912\n // need quotes for empty arg\n if (!arg) {\n return '\"\"';\n }\n // determine whether the arg needs to be quoted\n const cmdSpecialChars = [\n ' ',\n '\\t',\n '&',\n '(',\n ')',\n '[',\n ']',\n '{',\n '}',\n '^',\n '=',\n ';',\n '!',\n \"'\",\n '+',\n ',',\n '`',\n '~',\n '|',\n '<',\n '>',\n '\"'\n ];\n let needsQuotes = false;\n for (const char of arg) {\n if (cmdSpecialChars.some(x => x === char)) {\n needsQuotes = true;\n break;\n }\n }\n // short-circuit if quotes not needed\n if (!needsQuotes) {\n return arg;\n }\n // the following quoting rules are very similar to the rules that by libuv applies.\n //\n // 1) wrap the string in quotes\n //\n // 2) double-up quotes - i.e. \" => \"\"\n //\n // this is different from the libuv quoting rules. libuv replaces \" with \\\", which unfortunately\n // doesn't work well with a cmd.exe command line.\n //\n // note, replacing \" with \"\" also works well if the arg is passed to a downstream .NET console app.\n // for example, the command line:\n // foo.exe \"myarg:\"\"my val\"\"\"\n // is parsed by a .NET console app into an arg array:\n // [ \"myarg:\\\"my val\\\"\" ]\n // which is the same end result when applying libuv quoting rules. although the actual\n // command line from libuv quoting rules would look like:\n // foo.exe \"myarg:\\\"my val\\\"\"\n //\n // 3) double-up slashes that precede a quote,\n // e.g. hello \\world => \"hello \\world\"\n // hello\\\"world => \"hello\\\\\"\"world\"\n // hello\\\\\"world => \"hello\\\\\\\\\"\"world\"\n // hello world\\ => \"hello world\\\\\"\n //\n // technically this is not required for a cmd.exe command line, or the batch argument parser.\n // the reasons for including this as a .cmd quoting rule are:\n //\n // a) this is optimized for the scenario where the argument is passed from the .cmd file to an\n // external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule.\n //\n // b) it's what we've been doing previously (by deferring to node default behavior) and we\n // haven't heard any complaints about that aspect.\n //\n // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be\n // escaped when used on the command line directly - even though within a .cmd file % can be escaped\n // by using %%.\n //\n // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts\n // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing.\n //\n // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would\n // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the\n // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args\n // to an external program.\n //\n // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file.\n // % can be escaped within a .cmd file.\n let reverse = '\"';\n let quoteHit = true;\n for (let i = arg.length; i > 0; i--) {\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === '\\\\') {\n reverse += '\\\\'; // double the slash\n }\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += '\"'; // double the quote\n }\n else {\n quoteHit = false;\n }\n }\n reverse += '\"';\n return reverse\n .split('')\n .reverse()\n .join('');\n }\n _uvQuoteCmdArg(arg) {\n // Tool runner wraps child_process.spawn() and needs to apply the same quoting as\n // Node in certain cases where the undocumented spawn option windowsVerbatimArguments\n // is used.\n //\n // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV,\n // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details),\n // pasting copyright notice from Node within this function:\n //\n // Copyright Joyent, Inc. and other Node contributors. All rights reserved.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a copy\n // of this software and associated documentation files (the \"Software\"), to\n // deal in the Software without restriction, including without limitation the\n // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n // sell copies of the Software, and to permit persons to whom the Software is\n // furnished to do so, subject to the following conditions:\n //\n // The above copyright notice and this permission notice shall be included in\n // all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n // IN THE SOFTWARE.\n if (!arg) {\n // Need double quotation for empty argument\n return '\"\"';\n }\n if (!arg.includes(' ') && !arg.includes('\\t') && !arg.includes('\"')) {\n // No quotation needed\n return arg;\n }\n if (!arg.includes('\"') && !arg.includes('\\\\')) {\n // No embedded double quotes or backslashes, so I can just wrap\n // quote marks around the whole thing.\n return `\"${arg}\"`;\n }\n // Expected input/output:\n // input : hello\"world\n // output: \"hello\\\"world\"\n // input : hello\"\"world\n // output: \"hello\\\"\\\"world\"\n // input : hello\\world\n // output: hello\\world\n // input : hello\\\\world\n // output: hello\\\\world\n // input : hello\\\"world\n // output: \"hello\\\\\\\"world\"\n // input : hello\\\\\"world\n // output: \"hello\\\\\\\\\\\"world\"\n // input : hello world\\\n // output: \"hello world\\\\\" - note the comment in libuv actually reads \"hello world\\\"\n // but it appears the comment is wrong, it should be \"hello world\\\\\"\n let reverse = '\"';\n let quoteHit = true;\n for (let i = arg.length; i > 0; i--) {\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === '\\\\') {\n reverse += '\\\\';\n }\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += '\\\\';\n }\n else {\n quoteHit = false;\n }\n }\n reverse += '\"';\n return reverse\n .split('')\n .reverse()\n .join('');\n }\n _cloneExecOptions(options) {\n options = options || {};\n const result = {\n cwd: options.cwd || process.cwd(),\n env: options.env || process.env,\n silent: options.silent || false,\n windowsVerbatimArguments: options.windowsVerbatimArguments || false,\n failOnStdErr: options.failOnStdErr || false,\n ignoreReturnCode: options.ignoreReturnCode || false,\n delay: options.delay || 10000\n };\n result.outStream = options.outStream || process.stdout;\n result.errStream = options.errStream || process.stderr;\n return result;\n }\n _getSpawnOptions(options, toolPath) {\n options = options || {};\n const result = {};\n result.cwd = options.cwd;\n result.env = options.env;\n result['windowsVerbatimArguments'] =\n options.windowsVerbatimArguments || this._isCmdFile();\n if (options.windowsVerbatimArguments) {\n result.argv0 = `\"${toolPath}\"`;\n }\n return result;\n }\n /**\n * Exec a tool.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param tool path to tool to exec\n * @param options optional exec options. See ExecOptions\n * @returns number\n */\n exec() {\n return __awaiter(this, void 0, void 0, function* () {\n // root the tool path if it is unrooted and contains relative pathing\n if (!ioUtil.isRooted(this.toolPath) &&\n (this.toolPath.includes('/') ||\n (IS_WINDOWS && this.toolPath.includes('\\\\')))) {\n // prefer options.cwd if it is specified, however options.cwd may also need to be rooted\n this.toolPath = path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath);\n }\n // if the tool is only a file name, then resolve it from the PATH\n // otherwise verify it exists (add extension on Windows if necessary)\n this.toolPath = yield io.which(this.toolPath, true);\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n this._debug(`exec tool: ${this.toolPath}`);\n this._debug('arguments:');\n for (const arg of this.args) {\n this._debug(` ${arg}`);\n }\n const optionsNonNull = this._cloneExecOptions(this.options);\n if (!optionsNonNull.silent && optionsNonNull.outStream) {\n optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + os.EOL);\n }\n const state = new ExecState(optionsNonNull, this.toolPath);\n state.on('debug', (message) => {\n this._debug(message);\n });\n if (this.options.cwd && !(yield ioUtil.exists(this.options.cwd))) {\n return reject(new Error(`The cwd: ${this.options.cwd} does not exist!`));\n }\n const fileName = this._getSpawnFileName();\n const cp = child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName));\n let stdbuffer = '';\n if (cp.stdout) {\n cp.stdout.on('data', (data) => {\n if (this.options.listeners && this.options.listeners.stdout) {\n this.options.listeners.stdout(data);\n }\n if (!optionsNonNull.silent && optionsNonNull.outStream) {\n optionsNonNull.outStream.write(data);\n }\n stdbuffer = this._processLineBuffer(data, stdbuffer, (line) => {\n if (this.options.listeners && this.options.listeners.stdline) {\n this.options.listeners.stdline(line);\n }\n });\n });\n }\n let errbuffer = '';\n if (cp.stderr) {\n cp.stderr.on('data', (data) => {\n state.processStderr = true;\n if (this.options.listeners && this.options.listeners.stderr) {\n this.options.listeners.stderr(data);\n }\n if (!optionsNonNull.silent &&\n optionsNonNull.errStream &&\n optionsNonNull.outStream) {\n const s = optionsNonNull.failOnStdErr\n ? optionsNonNull.errStream\n : optionsNonNull.outStream;\n s.write(data);\n }\n errbuffer = this._processLineBuffer(data, errbuffer, (line) => {\n if (this.options.listeners && this.options.listeners.errline) {\n this.options.listeners.errline(line);\n }\n });\n });\n }\n cp.on('error', (err) => {\n state.processError = err.message;\n state.processExited = true;\n state.processClosed = true;\n state.CheckComplete();\n });\n cp.on('exit', (code) => {\n state.processExitCode = code;\n state.processExited = true;\n this._debug(`Exit code ${code} received from tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n cp.on('close', (code) => {\n state.processExitCode = code;\n state.processExited = true;\n state.processClosed = true;\n this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n state.on('done', (error, exitCode) => {\n if (stdbuffer.length > 0) {\n this.emit('stdline', stdbuffer);\n }\n if (errbuffer.length > 0) {\n this.emit('errline', errbuffer);\n }\n cp.removeAllListeners();\n if (error) {\n reject(error);\n }\n else {\n resolve(exitCode);\n }\n });\n if (this.options.input) {\n if (!cp.stdin) {\n throw new Error('child process missing stdin');\n }\n cp.stdin.end(this.options.input);\n }\n }));\n });\n }\n}\nexports.ToolRunner = ToolRunner;\n/**\n * Convert an arg string to an array of args. Handles escaping\n *\n * @param argString string of arguments\n * @returns string[] array of arguments\n */\nfunction argStringToArray(argString) {\n const args = [];\n let inQuotes = false;\n let escaped = false;\n let arg = '';\n function append(c) {\n // we only escape double quotes.\n if (escaped && c !== '\"') {\n arg += '\\\\';\n }\n arg += c;\n escaped = false;\n }\n for (let i = 0; i < argString.length; i++) {\n const c = argString.charAt(i);\n if (c === '\"') {\n if (!escaped) {\n inQuotes = !inQuotes;\n }\n else {\n append(c);\n }\n continue;\n }\n if (c === '\\\\' && escaped) {\n append(c);\n continue;\n }\n if (c === '\\\\' && inQuotes) {\n escaped = true;\n continue;\n }\n if (c === ' ' && !inQuotes) {\n if (arg.length > 0) {\n args.push(arg);\n arg = '';\n }\n continue;\n }\n append(c);\n }\n if (arg.length > 0) {\n args.push(arg.trim());\n }\n return args;\n}\nexports.argStringToArray = argStringToArray;\nclass ExecState extends events.EventEmitter {\n constructor(options, toolPath) {\n super();\n this.processClosed = false; // tracks whether the process has exited and stdio is closed\n this.processError = '';\n this.processExitCode = 0;\n this.processExited = false; // tracks whether the process has exited\n this.processStderr = false; // tracks whether stderr was written to\n this.delay = 10000; // 10 seconds\n this.done = false;\n this.timeout = null;\n if (!toolPath) {\n throw new Error('toolPath must not be empty');\n }\n this.options = options;\n this.toolPath = toolPath;\n if (options.delay) {\n this.delay = options.delay;\n }\n }\n CheckComplete() {\n if (this.done) {\n return;\n }\n if (this.processClosed) {\n this._setResult();\n }\n else if (this.processExited) {\n this.timeout = timers_1.setTimeout(ExecState.HandleTimeout, this.delay, this);\n }\n }\n _debug(message) {\n this.emit('debug', message);\n }\n _setResult() {\n // determine whether there is an error\n let error;\n if (this.processExited) {\n if (this.processError) {\n error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`);\n }\n else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) {\n error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`);\n }\n else if (this.processStderr && this.options.failOnStdErr) {\n error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`);\n }\n }\n // clear the timeout\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.done = true;\n this.emit('done', error, this.processExitCode);\n }\n static HandleTimeout(state) {\n if (state.done) {\n return;\n }\n if (!state.processClosed && state.processExited) {\n const message = `The STDIO streams did not close within ${state.delay /\n 1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;\n state._debug(message);\n }\n state._setResult();\n }\n}\n//# sourceMappingURL=toolrunner.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getExecOutput = exports.exec = void 0;\nconst string_decoder_1 = require(\"string_decoder\");\nconst tr = __importStar(require(\"./toolrunner\"));\n/**\n * Exec a command.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code\n */\nfunction exec(commandLine, args, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const commandArgs = tr.argStringToArray(commandLine);\n if (commandArgs.length === 0) {\n throw new Error(`Parameter 'commandLine' cannot be null or empty.`);\n }\n // Path to tool to execute should be first arg\n const toolPath = commandArgs[0];\n args = commandArgs.slice(1).concat(args || []);\n const runner = new tr.ToolRunner(toolPath, args, options);\n return runner.exec();\n });\n}\nexports.exec = exec;\n/**\n * Exec a command and get the output.\n * Output will be streamed to the live console.\n * Returns promise with the exit code and collected stdout and stderr\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code, stdout, and stderr\n */\nfunction getExecOutput(commandLine, args, options) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n let stdout = '';\n let stderr = '';\n //Using string decoder covers the case where a mult-byte character is split\n const stdoutDecoder = new string_decoder_1.StringDecoder('utf8');\n const stderrDecoder = new string_decoder_1.StringDecoder('utf8');\n const originalStdoutListener = (_a = options === null || options === void 0 ? void 0 : options.listeners) === null || _a === void 0 ? void 0 : _a.stdout;\n const originalStdErrListener = (_b = options === null || options === void 0 ? void 0 : options.listeners) === null || _b === void 0 ? void 0 : _b.stderr;\n const stdErrListener = (data) => {\n stderr += stderrDecoder.write(data);\n if (originalStdErrListener) {\n originalStdErrListener(data);\n }\n };\n const stdOutListener = (data) => {\n stdout += stdoutDecoder.write(data);\n if (originalStdoutListener) {\n originalStdoutListener(data);\n }\n };\n const listeners = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.listeners), { stdout: stdOutListener, stderr: stdErrListener });\n const exitCode = yield exec(commandLine, args, Object.assign(Object.assign({}, options), { listeners }));\n //flush any remaining characters\n stdout += stdoutDecoder.end();\n stderr += stderrDecoder.end();\n return {\n exitCode,\n stdout,\n stderr\n };\n });\n}\nexports.getExecOutput = getExecOutput;\n//# sourceMappingURL=exec.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDetails = exports.isLinux = exports.isMacOS = exports.isWindows = exports.arch = exports.platform = void 0;\nconst os_1 = __importDefault(require(\"os\"));\nconst exec = __importStar(require(\"@actions/exec\"));\nconst getWindowsInfo = () => __awaiter(void 0, void 0, void 0, function* () {\n const { stdout: version } = yield exec.getExecOutput('powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Version\"', undefined, {\n silent: true\n });\n const { stdout: name } = yield exec.getExecOutput('powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Caption\"', undefined, {\n silent: true\n });\n return {\n name: name.trim(),\n version: version.trim()\n };\n});\nconst getMacOsInfo = () => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b, _c, _d;\n const { stdout } = yield exec.getExecOutput('sw_vers', undefined, {\n silent: true\n });\n const version = (_b = (_a = stdout.match(/ProductVersion:\\s*(.+)/)) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : '';\n const name = (_d = (_c = stdout.match(/ProductName:\\s*(.+)/)) === null || _c === void 0 ? void 0 : _c[1]) !== null && _d !== void 0 ? _d : '';\n return {\n name,\n version\n };\n});\nconst getLinuxInfo = () => __awaiter(void 0, void 0, void 0, function* () {\n const { stdout } = yield exec.getExecOutput('lsb_release', ['-i', '-r', '-s'], {\n silent: true\n });\n const [name, version] = stdout.trim().split('\\n');\n return {\n name,\n version\n };\n});\nexports.platform = os_1.default.platform();\nexports.arch = os_1.default.arch();\nexports.isWindows = exports.platform === 'win32';\nexports.isMacOS = exports.platform === 'darwin';\nexports.isLinux = exports.platform === 'linux';\nfunction getDetails() {\n return __awaiter(this, void 0, void 0, function* () {\n return Object.assign(Object.assign({}, (yield (exports.isWindows\n ? getWindowsInfo()\n : exports.isMacOS\n ? getMacOsInfo()\n : getLinuxInfo()))), { platform: exports.platform,\n arch: exports.arch,\n isWindows: exports.isWindows,\n isMacOS: exports.isMacOS,\n isLinux: exports.isLinux });\n });\n}\nexports.getDetails = getDetails;\n//# sourceMappingURL=platform.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.platform = exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = exports.markdownSummary = exports.summary = exports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode || (exports.ExitCode = ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = (0, utils_1.toCommandValue)(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n return (0, file_command_1.issueFileCommand)('ENV', (0, file_command_1.prepareKeyValueMessage)(name, val));\n }\n (0, command_1.issueCommand)('set-env', { name }, convertedVal);\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n (0, command_1.issueCommand)('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n (0, file_command_1.issueFileCommand)('PATH', inputPath);\n }\n else {\n (0, command_1.issueCommand)('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n if (options && options.trimWhitespace === false) {\n return inputs;\n }\n return inputs.map(input => input.trim());\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n const filePath = process.env['GITHUB_OUTPUT'] || '';\n if (filePath) {\n return (0, file_command_1.issueFileCommand)('OUTPUT', (0, file_command_1.prepareKeyValueMessage)(name, value));\n }\n process.stdout.write(os.EOL);\n (0, command_1.issueCommand)('set-output', { name }, (0, utils_1.toCommandValue)(value));\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n (0, command_1.issue)('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n (0, command_1.issueCommand)('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n (0, command_1.issueCommand)('error', (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n (0, command_1.issueCommand)('warning', (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n (0, command_1.issueCommand)('notice', (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n (0, command_1.issue)('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n (0, command_1.issue)('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n const filePath = process.env['GITHUB_STATE'] || '';\n if (filePath) {\n return (0, file_command_1.issueFileCommand)('STATE', (0, file_command_1.prepareKeyValueMessage)(name, value));\n }\n (0, command_1.issueCommand)('save-state', { name }, (0, utils_1.toCommandValue)(value));\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n/**\n * Summary exports\n */\nvar summary_1 = require(\"./summary\");\nObject.defineProperty(exports, \"summary\", { enumerable: true, get: function () { return summary_1.summary; } });\n/**\n * @deprecated use core.summary\n */\nvar summary_2 = require(\"./summary\");\nObject.defineProperty(exports, \"markdownSummary\", { enumerable: true, get: function () { return summary_2.markdownSummary; } });\n/**\n * Path exports\n */\nvar path_utils_1 = require(\"./path-utils\");\nObject.defineProperty(exports, \"toPosixPath\", { enumerable: true, get: function () { return path_utils_1.toPosixPath; } });\nObject.defineProperty(exports, \"toWin32Path\", { enumerable: true, get: function () { return path_utils_1.toWin32Path; } });\nObject.defineProperty(exports, \"toPlatformPath\", { enumerable: true, get: function () { return path_utils_1.toPlatformPath; } });\n/**\n * Platform utilities exports\n */\nexports.platform = __importStar(require(\"./platform\"));\n//# sourceMappingURL=core.js.map","\n/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n\n implicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n if (type$1.loadKind && type$1.loadKind !== 'scalar') {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n\n if (type$1.multi) {\n throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n\n explicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nvar _null = new type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nvar bool = new type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'o') {\n // base 8\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nvar int = new type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nvar float = new type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nvar timestamp = new type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\n\nvar binary = new type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n\n // used for this specific key only because Object.defineProperty is slow\n if (keyNode === '__proto__') {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception('expected a single document in the stream, but found more');\n}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport default jsYaml;\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","import Stream from 'stream';\nimport http from 'http';\nimport Url from 'url';\nimport whatwgUrl from 'whatwg-url';\nimport https from 'https';\nimport zlib from 'zlib';\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nconst isSameProtocol = function isSameProtocol(destination, original) {\n\tconst orig = new URL$1(original).protocol;\n\tconst dest = new URL$1(destination).protocol;\n\n\treturn orig === dest;\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\tdestroyStream(request.body, error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(req, function (err) {\n\t\t\tif (signal && signal.aborted) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (parseInt(process.version.substring(1)) < 14) {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\treq.on('socket', function (s) {\n\t\t\t\ts.addListener('close', function (hadError) {\n\t\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\t\tconst hasDataListener = s.listenerCount('data') > 0;\n\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && hasDataListener && !hadError && !(signal && signal.aborted)) {\n\t\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', err);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.on('end', function () {\n\t\t\t\t\t// some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted.\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tlet socket;\n\n\trequest.on('socket', function (s) {\n\t\tsocket = s;\n\t});\n\n\trequest.on('response', function (response) {\n\t\tconst headers = response.headers;\n\n\t\tif (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) {\n\t\t\tresponse.once('close', function (hadError) {\n\t\t\t\t// tests for socket presence, as in some situations the\n\t\t\t\t// the 'socket' event is not triggered for the request\n\t\t\t\t// (happens in deno), avoids `TypeError`\n\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\tconst hasDataListener = socket && socket.listenerCount('data') > 0;\n\n\t\t\t\tif (hasDataListener && !hadError) {\n\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\terrorCallback(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n\nfunction destroyStream(stream, err) {\n\tif (stream.destroy) {\n\t\tstream.destroy(err);\n\t} else {\n\t\t// node < 8\n\t\tstream.emit('error', err);\n\t\tstream.end();\n\t}\n}\n\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nexport default fetch;\nexport { Headers, Request, Response, FetchError, AbortError };\n","import vm from 'vm';\n\n/**\n * @implements {IHooks}\n */\nclass Hooks {\n /**\n * @callback HookCallback\n * @this {*|Jsep} this\n * @param {Jsep} env\n * @returns: void\n */\n /**\n * Adds the given callback to the list of callbacks for the given hook.\n *\n * The callback will be invoked when the hook it is registered for is run.\n *\n * One callback function can be registered to multiple hooks and the same hook multiple times.\n *\n * @param {string|object} name The name of the hook, or an object of callbacks keyed by name\n * @param {HookCallback|boolean} callback The callback function which is given environment variables.\n * @param {?boolean} [first=false] Will add the hook to the top of the list (defaults to the bottom)\n * @public\n */\n add(name, callback, first) {\n if (typeof arguments[0] != 'string') {\n // Multiple hook callbacks, keyed by name\n for (let name in arguments[0]) {\n this.add(name, arguments[0][name], arguments[1]);\n }\n } else {\n (Array.isArray(name) ? name : [name]).forEach(function (name) {\n this[name] = this[name] || [];\n if (callback) {\n this[name][first ? 'unshift' : 'push'](callback);\n }\n }, this);\n }\n }\n\n /**\n * Runs a hook invoking all registered callbacks with the given environment variables.\n *\n * Callbacks will be invoked synchronously and in the order in which they were registered.\n *\n * @param {string} name The name of the hook.\n * @param {Object} env The environment variables of the hook passed to all callbacks registered.\n * @public\n */\n run(name, env) {\n this[name] = this[name] || [];\n this[name].forEach(function (callback) {\n callback.call(env && env.context ? env.context : env, env);\n });\n }\n}\n\n/**\n * @implements {IPlugins}\n */\nclass Plugins {\n constructor(jsep) {\n this.jsep = jsep;\n this.registered = {};\n }\n\n /**\n * @callback PluginSetup\n * @this {Jsep} jsep\n * @returns: void\n */\n /**\n * Adds the given plugin(s) to the registry\n *\n * @param {object} plugins\n * @param {string} plugins.name The name of the plugin\n * @param {PluginSetup} plugins.init The init function\n * @public\n */\n register(...plugins) {\n plugins.forEach(plugin => {\n if (typeof plugin !== 'object' || !plugin.name || !plugin.init) {\n throw new Error('Invalid JSEP plugin format');\n }\n if (this.registered[plugin.name]) {\n // already registered. Ignore.\n return;\n }\n plugin.init(this.jsep);\n this.registered[plugin.name] = plugin;\n });\n }\n}\n\n// JavaScript Expression Parser (JSEP) 1.4.0\n\nclass Jsep {\n /**\n * @returns {string}\n */\n static get version() {\n // To be filled in by the template\n return '1.4.0';\n }\n\n /**\n * @returns {string}\n */\n static toString() {\n return 'JavaScript Expression Parser (JSEP) v' + Jsep.version;\n }\n // ==================== CONFIG ================================\n /**\n * @method addUnaryOp\n * @param {string} op_name The name of the unary op to add\n * @returns {Jsep}\n */\n static addUnaryOp(op_name) {\n Jsep.max_unop_len = Math.max(op_name.length, Jsep.max_unop_len);\n Jsep.unary_ops[op_name] = 1;\n return Jsep;\n }\n\n /**\n * @method jsep.addBinaryOp\n * @param {string} op_name The name of the binary op to add\n * @param {number} precedence The precedence of the binary op (can be a float). Higher number = higher precedence\n * @param {boolean} [isRightAssociative=false] whether operator is right-associative\n * @returns {Jsep}\n */\n static addBinaryOp(op_name, precedence, isRightAssociative) {\n Jsep.max_binop_len = Math.max(op_name.length, Jsep.max_binop_len);\n Jsep.binary_ops[op_name] = precedence;\n if (isRightAssociative) {\n Jsep.right_associative.add(op_name);\n } else {\n Jsep.right_associative.delete(op_name);\n }\n return Jsep;\n }\n\n /**\n * @method addIdentifierChar\n * @param {string} char The additional character to treat as a valid part of an identifier\n * @returns {Jsep}\n */\n static addIdentifierChar(char) {\n Jsep.additional_identifier_chars.add(char);\n return Jsep;\n }\n\n /**\n * @method addLiteral\n * @param {string} literal_name The name of the literal to add\n * @param {*} literal_value The value of the literal\n * @returns {Jsep}\n */\n static addLiteral(literal_name, literal_value) {\n Jsep.literals[literal_name] = literal_value;\n return Jsep;\n }\n\n /**\n * @method removeUnaryOp\n * @param {string} op_name The name of the unary op to remove\n * @returns {Jsep}\n */\n static removeUnaryOp(op_name) {\n delete Jsep.unary_ops[op_name];\n if (op_name.length === Jsep.max_unop_len) {\n Jsep.max_unop_len = Jsep.getMaxKeyLen(Jsep.unary_ops);\n }\n return Jsep;\n }\n\n /**\n * @method removeAllUnaryOps\n * @returns {Jsep}\n */\n static removeAllUnaryOps() {\n Jsep.unary_ops = {};\n Jsep.max_unop_len = 0;\n return Jsep;\n }\n\n /**\n * @method removeIdentifierChar\n * @param {string} char The additional character to stop treating as a valid part of an identifier\n * @returns {Jsep}\n */\n static removeIdentifierChar(char) {\n Jsep.additional_identifier_chars.delete(char);\n return Jsep;\n }\n\n /**\n * @method removeBinaryOp\n * @param {string} op_name The name of the binary op to remove\n * @returns {Jsep}\n */\n static removeBinaryOp(op_name) {\n delete Jsep.binary_ops[op_name];\n if (op_name.length === Jsep.max_binop_len) {\n Jsep.max_binop_len = Jsep.getMaxKeyLen(Jsep.binary_ops);\n }\n Jsep.right_associative.delete(op_name);\n return Jsep;\n }\n\n /**\n * @method removeAllBinaryOps\n * @returns {Jsep}\n */\n static removeAllBinaryOps() {\n Jsep.binary_ops = {};\n Jsep.max_binop_len = 0;\n return Jsep;\n }\n\n /**\n * @method removeLiteral\n * @param {string} literal_name The name of the literal to remove\n * @returns {Jsep}\n */\n static removeLiteral(literal_name) {\n delete Jsep.literals[literal_name];\n return Jsep;\n }\n\n /**\n * @method removeAllLiterals\n * @returns {Jsep}\n */\n static removeAllLiterals() {\n Jsep.literals = {};\n return Jsep;\n }\n // ==================== END CONFIG ============================\n\n /**\n * @returns {string}\n */\n get char() {\n return this.expr.charAt(this.index);\n }\n\n /**\n * @returns {number}\n */\n get code() {\n return this.expr.charCodeAt(this.index);\n }\n /**\n * @param {string} expr a string with the passed in express\n * @returns Jsep\n */\n constructor(expr) {\n // `index` stores the character number we are currently at\n // All of the gobbles below will modify `index` as we move along\n this.expr = expr;\n this.index = 0;\n }\n\n /**\n * static top-level parser\n * @returns {jsep.Expression}\n */\n static parse(expr) {\n return new Jsep(expr).parse();\n }\n\n /**\n * Get the longest key length of any object\n * @param {object} obj\n * @returns {number}\n */\n static getMaxKeyLen(obj) {\n return Math.max(0, ...Object.keys(obj).map(k => k.length));\n }\n\n /**\n * `ch` is a character code in the next three functions\n * @param {number} ch\n * @returns {boolean}\n */\n static isDecimalDigit(ch) {\n return ch >= 48 && ch <= 57; // 0...9\n }\n\n /**\n * Returns the precedence of a binary operator or `0` if it isn't a binary operator. Can be float.\n * @param {string} op_val\n * @returns {number}\n */\n static binaryPrecedence(op_val) {\n return Jsep.binary_ops[op_val] || 0;\n }\n\n /**\n * Looks for start of identifier\n * @param {number} ch\n * @returns {boolean}\n */\n static isIdentifierStart(ch) {\n return ch >= 65 && ch <= 90 ||\n // A...Z\n ch >= 97 && ch <= 122 ||\n // a...z\n ch >= 128 && !Jsep.binary_ops[String.fromCharCode(ch)] ||\n // any non-ASCII that is not an operator\n Jsep.additional_identifier_chars.has(String.fromCharCode(ch)); // additional characters\n }\n\n /**\n * @param {number} ch\n * @returns {boolean}\n */\n static isIdentifierPart(ch) {\n return Jsep.isIdentifierStart(ch) || Jsep.isDecimalDigit(ch);\n }\n\n /**\n * throw error at index of the expression\n * @param {string} message\n * @throws\n */\n throwError(message) {\n const error = new Error(message + ' at character ' + this.index);\n error.index = this.index;\n error.description = message;\n throw error;\n }\n\n /**\n * Run a given hook\n * @param {string} name\n * @param {jsep.Expression|false} [node]\n * @returns {?jsep.Expression}\n */\n runHook(name, node) {\n if (Jsep.hooks[name]) {\n const env = {\n context: this,\n node\n };\n Jsep.hooks.run(name, env);\n return env.node;\n }\n return node;\n }\n\n /**\n * Runs a given hook until one returns a node\n * @param {string} name\n * @returns {?jsep.Expression}\n */\n searchHook(name) {\n if (Jsep.hooks[name]) {\n const env = {\n context: this\n };\n Jsep.hooks[name].find(function (callback) {\n callback.call(env.context, env);\n return env.node;\n });\n return env.node;\n }\n }\n\n /**\n * Push `index` up to the next non-space character\n */\n gobbleSpaces() {\n let ch = this.code;\n // Whitespace\n while (ch === Jsep.SPACE_CODE || ch === Jsep.TAB_CODE || ch === Jsep.LF_CODE || ch === Jsep.CR_CODE) {\n ch = this.expr.charCodeAt(++this.index);\n }\n this.runHook('gobble-spaces');\n }\n\n /**\n * Top-level method to parse all expressions and returns compound or single node\n * @returns {jsep.Expression}\n */\n parse() {\n this.runHook('before-all');\n const nodes = this.gobbleExpressions();\n\n // If there's only one expression just try returning the expression\n const node = nodes.length === 1 ? nodes[0] : {\n type: Jsep.COMPOUND,\n body: nodes\n };\n return this.runHook('after-all', node);\n }\n\n /**\n * top-level parser (but can be reused within as well)\n * @param {number} [untilICode]\n * @returns {jsep.Expression[]}\n */\n gobbleExpressions(untilICode) {\n let nodes = [],\n ch_i,\n node;\n while (this.index < this.expr.length) {\n ch_i = this.code;\n\n // Expressions can be separated by semicolons, commas, or just inferred without any\n // separators\n if (ch_i === Jsep.SEMCOL_CODE || ch_i === Jsep.COMMA_CODE) {\n this.index++; // ignore separators\n } else {\n // Try to gobble each expression individually\n if (node = this.gobbleExpression()) {\n nodes.push(node);\n // If we weren't able to find a binary expression and are out of room, then\n // the expression passed in probably has too much\n } else if (this.index < this.expr.length) {\n if (ch_i === untilICode) {\n break;\n }\n this.throwError('Unexpected \"' + this.char + '\"');\n }\n }\n }\n return nodes;\n }\n\n /**\n * The main parsing function.\n * @returns {?jsep.Expression}\n */\n gobbleExpression() {\n const node = this.searchHook('gobble-expression') || this.gobbleBinaryExpression();\n this.gobbleSpaces();\n return this.runHook('after-expression', node);\n }\n\n /**\n * Search for the operation portion of the string (e.g. `+`, `===`)\n * Start by taking the longest possible binary operations (3 characters: `===`, `!==`, `>>>`)\n * and move down from 3 to 2 to 1 character until a matching binary operation is found\n * then, return that binary operation\n * @returns {string|boolean}\n */\n gobbleBinaryOp() {\n this.gobbleSpaces();\n let to_check = this.expr.substr(this.index, Jsep.max_binop_len);\n let tc_len = to_check.length;\n while (tc_len > 0) {\n // Don't accept a binary op when it is an identifier.\n // Binary ops that start with a identifier-valid character must be followed\n // by a non identifier-part valid character\n if (Jsep.binary_ops.hasOwnProperty(to_check) && (!Jsep.isIdentifierStart(this.code) || this.index + to_check.length < this.expr.length && !Jsep.isIdentifierPart(this.expr.charCodeAt(this.index + to_check.length)))) {\n this.index += tc_len;\n return to_check;\n }\n to_check = to_check.substr(0, --tc_len);\n }\n return false;\n }\n\n /**\n * This function is responsible for gobbling an individual expression,\n * e.g. `1`, `1+2`, `a+(b*2)-Math.sqrt(2)`\n * @returns {?jsep.BinaryExpression}\n */\n gobbleBinaryExpression() {\n let node, biop, prec, stack, biop_info, left, right, i, cur_biop;\n\n // First, try to get the leftmost thing\n // Then, check to see if there's a binary operator operating on that leftmost thing\n // Don't gobbleBinaryOp without a left-hand-side\n left = this.gobbleToken();\n if (!left) {\n return left;\n }\n biop = this.gobbleBinaryOp();\n\n // If there wasn't a binary operator, just return the leftmost node\n if (!biop) {\n return left;\n }\n\n // Otherwise, we need to start a stack to properly place the binary operations in their\n // precedence structure\n biop_info = {\n value: biop,\n prec: Jsep.binaryPrecedence(biop),\n right_a: Jsep.right_associative.has(biop)\n };\n right = this.gobbleToken();\n if (!right) {\n this.throwError(\"Expected expression after \" + biop);\n }\n stack = [left, biop_info, right];\n\n // Properly deal with precedence using [recursive descent](http://www.engr.mun.ca/~theo/Misc/exp_parsing.htm)\n while (biop = this.gobbleBinaryOp()) {\n prec = Jsep.binaryPrecedence(biop);\n if (prec === 0) {\n this.index -= biop.length;\n break;\n }\n biop_info = {\n value: biop,\n prec,\n right_a: Jsep.right_associative.has(biop)\n };\n cur_biop = biop;\n\n // Reduce: make a binary expression from the three topmost entries.\n const comparePrev = prev => biop_info.right_a && prev.right_a ? prec > prev.prec : prec <= prev.prec;\n while (stack.length > 2 && comparePrev(stack[stack.length - 2])) {\n right = stack.pop();\n biop = stack.pop().value;\n left = stack.pop();\n node = {\n type: Jsep.BINARY_EXP,\n operator: biop,\n left,\n right\n };\n stack.push(node);\n }\n node = this.gobbleToken();\n if (!node) {\n this.throwError(\"Expected expression after \" + cur_biop);\n }\n stack.push(biop_info, node);\n }\n i = stack.length - 1;\n node = stack[i];\n while (i > 1) {\n node = {\n type: Jsep.BINARY_EXP,\n operator: stack[i - 1].value,\n left: stack[i - 2],\n right: node\n };\n i -= 2;\n }\n return node;\n }\n\n /**\n * An individual part of a binary expression:\n * e.g. `foo.bar(baz)`, `1`, `\"abc\"`, `(a % 2)` (because it's in parenthesis)\n * @returns {boolean|jsep.Expression}\n */\n gobbleToken() {\n let ch, to_check, tc_len, node;\n this.gobbleSpaces();\n node = this.searchHook('gobble-token');\n if (node) {\n return this.runHook('after-token', node);\n }\n ch = this.code;\n if (Jsep.isDecimalDigit(ch) || ch === Jsep.PERIOD_CODE) {\n // Char code 46 is a dot `.` which can start off a numeric literal\n return this.gobbleNumericLiteral();\n }\n if (ch === Jsep.SQUOTE_CODE || ch === Jsep.DQUOTE_CODE) {\n // Single or double quotes\n node = this.gobbleStringLiteral();\n } else if (ch === Jsep.OBRACK_CODE) {\n node = this.gobbleArray();\n } else {\n to_check = this.expr.substr(this.index, Jsep.max_unop_len);\n tc_len = to_check.length;\n while (tc_len > 0) {\n // Don't accept an unary op when it is an identifier.\n // Unary ops that start with a identifier-valid character must be followed\n // by a non identifier-part valid character\n if (Jsep.unary_ops.hasOwnProperty(to_check) && (!Jsep.isIdentifierStart(this.code) || this.index + to_check.length < this.expr.length && !Jsep.isIdentifierPart(this.expr.charCodeAt(this.index + to_check.length)))) {\n this.index += tc_len;\n const argument = this.gobbleToken();\n if (!argument) {\n this.throwError('missing unaryOp argument');\n }\n return this.runHook('after-token', {\n type: Jsep.UNARY_EXP,\n operator: to_check,\n argument,\n prefix: true\n });\n }\n to_check = to_check.substr(0, --tc_len);\n }\n if (Jsep.isIdentifierStart(ch)) {\n node = this.gobbleIdentifier();\n if (Jsep.literals.hasOwnProperty(node.name)) {\n node = {\n type: Jsep.LITERAL,\n value: Jsep.literals[node.name],\n raw: node.name\n };\n } else if (node.name === Jsep.this_str) {\n node = {\n type: Jsep.THIS_EXP\n };\n }\n } else if (ch === Jsep.OPAREN_CODE) {\n // open parenthesis\n node = this.gobbleGroup();\n }\n }\n if (!node) {\n return this.runHook('after-token', false);\n }\n node = this.gobbleTokenProperty(node);\n return this.runHook('after-token', node);\n }\n\n /**\n * Gobble properties of of identifiers/strings/arrays/groups.\n * e.g. `foo`, `bar.baz`, `foo['bar'].baz`\n * It also gobbles function calls:\n * e.g. `Math.acos(obj.angle)`\n * @param {jsep.Expression} node\n * @returns {jsep.Expression}\n */\n gobbleTokenProperty(node) {\n this.gobbleSpaces();\n let ch = this.code;\n while (ch === Jsep.PERIOD_CODE || ch === Jsep.OBRACK_CODE || ch === Jsep.OPAREN_CODE || ch === Jsep.QUMARK_CODE) {\n let optional;\n if (ch === Jsep.QUMARK_CODE) {\n if (this.expr.charCodeAt(this.index + 1) !== Jsep.PERIOD_CODE) {\n break;\n }\n optional = true;\n this.index += 2;\n this.gobbleSpaces();\n ch = this.code;\n }\n this.index++;\n if (ch === Jsep.OBRACK_CODE) {\n node = {\n type: Jsep.MEMBER_EXP,\n computed: true,\n object: node,\n property: this.gobbleExpression()\n };\n if (!node.property) {\n this.throwError('Unexpected \"' + this.char + '\"');\n }\n this.gobbleSpaces();\n ch = this.code;\n if (ch !== Jsep.CBRACK_CODE) {\n this.throwError('Unclosed [');\n }\n this.index++;\n } else if (ch === Jsep.OPAREN_CODE) {\n // A function call is being made; gobble all the arguments\n node = {\n type: Jsep.CALL_EXP,\n 'arguments': this.gobbleArguments(Jsep.CPAREN_CODE),\n callee: node\n };\n } else if (ch === Jsep.PERIOD_CODE || optional) {\n if (optional) {\n this.index--;\n }\n this.gobbleSpaces();\n node = {\n type: Jsep.MEMBER_EXP,\n computed: false,\n object: node,\n property: this.gobbleIdentifier()\n };\n }\n if (optional) {\n node.optional = true;\n } // else leave undefined for compatibility with esprima\n\n this.gobbleSpaces();\n ch = this.code;\n }\n return node;\n }\n\n /**\n * Parse simple numeric literals: `12`, `3.4`, `.5`. Do this by using a string to\n * keep track of everything in the numeric literal and then calling `parseFloat` on that string\n * @returns {jsep.Literal}\n */\n gobbleNumericLiteral() {\n let number = '',\n ch,\n chCode;\n while (Jsep.isDecimalDigit(this.code)) {\n number += this.expr.charAt(this.index++);\n }\n if (this.code === Jsep.PERIOD_CODE) {\n // can start with a decimal marker\n number += this.expr.charAt(this.index++);\n while (Jsep.isDecimalDigit(this.code)) {\n number += this.expr.charAt(this.index++);\n }\n }\n ch = this.char;\n if (ch === 'e' || ch === 'E') {\n // exponent marker\n number += this.expr.charAt(this.index++);\n ch = this.char;\n if (ch === '+' || ch === '-') {\n // exponent sign\n number += this.expr.charAt(this.index++);\n }\n while (Jsep.isDecimalDigit(this.code)) {\n // exponent itself\n number += this.expr.charAt(this.index++);\n }\n if (!Jsep.isDecimalDigit(this.expr.charCodeAt(this.index - 1))) {\n this.throwError('Expected exponent (' + number + this.char + ')');\n }\n }\n chCode = this.code;\n\n // Check to make sure this isn't a variable name that start with a number (123abc)\n if (Jsep.isIdentifierStart(chCode)) {\n this.throwError('Variable names cannot start with a number (' + number + this.char + ')');\n } else if (chCode === Jsep.PERIOD_CODE || number.length === 1 && number.charCodeAt(0) === Jsep.PERIOD_CODE) {\n this.throwError('Unexpected period');\n }\n return {\n type: Jsep.LITERAL,\n value: parseFloat(number),\n raw: number\n };\n }\n\n /**\n * Parses a string literal, staring with single or double quotes with basic support for escape codes\n * e.g. `\"hello world\"`, `'this is\\nJSEP'`\n * @returns {jsep.Literal}\n */\n gobbleStringLiteral() {\n let str = '';\n const startIndex = this.index;\n const quote = this.expr.charAt(this.index++);\n let closed = false;\n while (this.index < this.expr.length) {\n let ch = this.expr.charAt(this.index++);\n if (ch === quote) {\n closed = true;\n break;\n } else if (ch === '\\\\') {\n // Check for all of the common escape codes\n ch = this.expr.charAt(this.index++);\n switch (ch) {\n case 'n':\n str += '\\n';\n break;\n case 'r':\n str += '\\r';\n break;\n case 't':\n str += '\\t';\n break;\n case 'b':\n str += '\\b';\n break;\n case 'f':\n str += '\\f';\n break;\n case 'v':\n str += '\\x0B';\n break;\n default:\n str += ch;\n }\n } else {\n str += ch;\n }\n }\n if (!closed) {\n this.throwError('Unclosed quote after \"' + str + '\"');\n }\n return {\n type: Jsep.LITERAL,\n value: str,\n raw: this.expr.substring(startIndex, this.index)\n };\n }\n\n /**\n * Gobbles only identifiers\n * e.g.: `foo`, `_value`, `$x1`\n * Also, this function checks if that identifier is a literal:\n * (e.g. `true`, `false`, `null`) or `this`\n * @returns {jsep.Identifier}\n */\n gobbleIdentifier() {\n let ch = this.code,\n start = this.index;\n if (Jsep.isIdentifierStart(ch)) {\n this.index++;\n } else {\n this.throwError('Unexpected ' + this.char);\n }\n while (this.index < this.expr.length) {\n ch = this.code;\n if (Jsep.isIdentifierPart(ch)) {\n this.index++;\n } else {\n break;\n }\n }\n return {\n type: Jsep.IDENTIFIER,\n name: this.expr.slice(start, this.index)\n };\n }\n\n /**\n * Gobbles a list of arguments within the context of a function call\n * or array literal. This function also assumes that the opening character\n * `(` or `[` has already been gobbled, and gobbles expressions and commas\n * until the terminator character `)` or `]` is encountered.\n * e.g. `foo(bar, baz)`, `my_func()`, or `[bar, baz]`\n * @param {number} termination\n * @returns {jsep.Expression[]}\n */\n gobbleArguments(termination) {\n const args = [];\n let closed = false;\n let separator_count = 0;\n while (this.index < this.expr.length) {\n this.gobbleSpaces();\n let ch_i = this.code;\n if (ch_i === termination) {\n // done parsing\n closed = true;\n this.index++;\n if (termination === Jsep.CPAREN_CODE && separator_count && separator_count >= args.length) {\n this.throwError('Unexpected token ' + String.fromCharCode(termination));\n }\n break;\n } else if (ch_i === Jsep.COMMA_CODE) {\n // between expressions\n this.index++;\n separator_count++;\n if (separator_count !== args.length) {\n // missing argument\n if (termination === Jsep.CPAREN_CODE) {\n this.throwError('Unexpected token ,');\n } else if (termination === Jsep.CBRACK_CODE) {\n for (let arg = args.length; arg < separator_count; arg++) {\n args.push(null);\n }\n }\n }\n } else if (args.length !== separator_count && separator_count !== 0) {\n // NOTE: `&& separator_count !== 0` allows for either all commas, or all spaces as arguments\n this.throwError('Expected comma');\n } else {\n const node = this.gobbleExpression();\n if (!node || node.type === Jsep.COMPOUND) {\n this.throwError('Expected comma');\n }\n args.push(node);\n }\n }\n if (!closed) {\n this.throwError('Expected ' + String.fromCharCode(termination));\n }\n return args;\n }\n\n /**\n * Responsible for parsing a group of things within parentheses `()`\n * that have no identifier in front (so not a function call)\n * This function assumes that it needs to gobble the opening parenthesis\n * and then tries to gobble everything within that parenthesis, assuming\n * that the next thing it should see is the close parenthesis. If not,\n * then the expression probably doesn't have a `)`\n * @returns {boolean|jsep.Expression}\n */\n gobbleGroup() {\n this.index++;\n let nodes = this.gobbleExpressions(Jsep.CPAREN_CODE);\n if (this.code === Jsep.CPAREN_CODE) {\n this.index++;\n if (nodes.length === 1) {\n return nodes[0];\n } else if (!nodes.length) {\n return false;\n } else {\n return {\n type: Jsep.SEQUENCE_EXP,\n expressions: nodes\n };\n }\n } else {\n this.throwError('Unclosed (');\n }\n }\n\n /**\n * Responsible for parsing Array literals `[1, 2, 3]`\n * This function assumes that it needs to gobble the opening bracket\n * and then tries to gobble the expressions as arguments.\n * @returns {jsep.ArrayExpression}\n */\n gobbleArray() {\n this.index++;\n return {\n type: Jsep.ARRAY_EXP,\n elements: this.gobbleArguments(Jsep.CBRACK_CODE)\n };\n }\n}\n\n// Static fields:\nconst hooks = new Hooks();\nObject.assign(Jsep, {\n hooks,\n plugins: new Plugins(Jsep),\n // Node Types\n // ----------\n // This is the full set of types that any JSEP node can be.\n // Store them here to save space when minified\n COMPOUND: 'Compound',\n SEQUENCE_EXP: 'SequenceExpression',\n IDENTIFIER: 'Identifier',\n MEMBER_EXP: 'MemberExpression',\n LITERAL: 'Literal',\n THIS_EXP: 'ThisExpression',\n CALL_EXP: 'CallExpression',\n UNARY_EXP: 'UnaryExpression',\n BINARY_EXP: 'BinaryExpression',\n ARRAY_EXP: 'ArrayExpression',\n TAB_CODE: 9,\n LF_CODE: 10,\n CR_CODE: 13,\n SPACE_CODE: 32,\n PERIOD_CODE: 46,\n // '.'\n COMMA_CODE: 44,\n // ','\n SQUOTE_CODE: 39,\n // single quote\n DQUOTE_CODE: 34,\n // double quotes\n OPAREN_CODE: 40,\n // (\n CPAREN_CODE: 41,\n // )\n OBRACK_CODE: 91,\n // [\n CBRACK_CODE: 93,\n // ]\n QUMARK_CODE: 63,\n // ?\n SEMCOL_CODE: 59,\n // ;\n COLON_CODE: 58,\n // :\n\n // Operations\n // ----------\n // Use a quickly-accessible map to store all of the unary operators\n // Values are set to `1` (it really doesn't matter)\n unary_ops: {\n '-': 1,\n '!': 1,\n '~': 1,\n '+': 1\n },\n // Also use a map for the binary operations but set their values to their\n // binary precedence for quick reference (higher number = higher precedence)\n // see [Order of operations](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence)\n binary_ops: {\n '||': 1,\n '??': 1,\n '&&': 2,\n '|': 3,\n '^': 4,\n '&': 5,\n '==': 6,\n '!=': 6,\n '===': 6,\n '!==': 6,\n '<': 7,\n '>': 7,\n '<=': 7,\n '>=': 7,\n '<<': 8,\n '>>': 8,\n '>>>': 8,\n '+': 9,\n '-': 9,\n '*': 10,\n '/': 10,\n '%': 10,\n '**': 11\n },\n // sets specific binary_ops as right-associative\n right_associative: new Set(['**']),\n // Additional valid identifier chars, apart from a-z, A-Z and 0-9 (except on the starting char)\n additional_identifier_chars: new Set(['$', '_']),\n // Literals\n // ----------\n // Store the values to return for the various literals we may encounter\n literals: {\n 'true': true,\n 'false': false,\n 'null': null\n },\n // Except for `this`, which is special. This could be changed to something like `'self'` as well\n this_str: 'this'\n});\nJsep.max_unop_len = Jsep.getMaxKeyLen(Jsep.unary_ops);\nJsep.max_binop_len = Jsep.getMaxKeyLen(Jsep.binary_ops);\n\n// Backward Compatibility:\nconst jsep = expr => new Jsep(expr).parse();\nconst stdClassProps = Object.getOwnPropertyNames(class Test {});\nObject.getOwnPropertyNames(Jsep).filter(prop => !stdClassProps.includes(prop) && jsep[prop] === undefined).forEach(m => {\n jsep[m] = Jsep[m];\n});\njsep.Jsep = Jsep; // allows for const { Jsep } = require('jsep');\n\nconst CONDITIONAL_EXP = 'ConditionalExpression';\nvar ternary = {\n name: 'ternary',\n init(jsep) {\n // Ternary expression: test ? consequent : alternate\n jsep.hooks.add('after-expression', function gobbleTernary(env) {\n if (env.node && this.code === jsep.QUMARK_CODE) {\n this.index++;\n const test = env.node;\n const consequent = this.gobbleExpression();\n if (!consequent) {\n this.throwError('Expected expression');\n }\n this.gobbleSpaces();\n if (this.code === jsep.COLON_CODE) {\n this.index++;\n const alternate = this.gobbleExpression();\n if (!alternate) {\n this.throwError('Expected expression');\n }\n env.node = {\n type: CONDITIONAL_EXP,\n test,\n consequent,\n alternate\n };\n\n // check for operators of higher priority than ternary (i.e. assignment)\n // jsep sets || at 1, and assignment at 0.9, and conditional should be between them\n if (test.operator && jsep.binary_ops[test.operator] <= 0.9) {\n let newTest = test;\n while (newTest.right.operator && jsep.binary_ops[newTest.right.operator] <= 0.9) {\n newTest = newTest.right;\n }\n env.node.test = newTest.right;\n newTest.right = env.node;\n env.node = test;\n }\n } else {\n this.throwError('Expected :');\n }\n }\n });\n }\n};\n\n// Add default plugins:\n\njsep.plugins.register(ternary);\n\nconst FSLASH_CODE = 47; // '/'\nconst BSLASH_CODE = 92; // '\\\\'\n\nvar index = {\n name: 'regex',\n init(jsep) {\n // Regex literal: /abc123/ig\n jsep.hooks.add('gobble-token', function gobbleRegexLiteral(env) {\n if (this.code === FSLASH_CODE) {\n const patternIndex = ++this.index;\n let inCharSet = false;\n while (this.index < this.expr.length) {\n if (this.code === FSLASH_CODE && !inCharSet) {\n const pattern = this.expr.slice(patternIndex, this.index);\n let flags = '';\n while (++this.index < this.expr.length) {\n const code = this.code;\n if (code >= 97 && code <= 122 // a...z\n || code >= 65 && code <= 90 // A...Z\n || code >= 48 && code <= 57) {\n // 0-9\n flags += this.char;\n } else {\n break;\n }\n }\n let value;\n try {\n value = new RegExp(pattern, flags);\n } catch (e) {\n this.throwError(e.message);\n }\n env.node = {\n type: jsep.LITERAL,\n value,\n raw: this.expr.slice(patternIndex - 1, this.index)\n };\n\n // allow . [] and () after regex: /regex/.test(a)\n env.node = this.gobbleTokenProperty(env.node);\n return env.node;\n }\n if (this.code === jsep.OBRACK_CODE) {\n inCharSet = true;\n } else if (inCharSet && this.code === jsep.CBRACK_CODE) {\n inCharSet = false;\n }\n this.index += this.code === BSLASH_CODE ? 2 : 1;\n }\n this.throwError('Unclosed Regex');\n }\n });\n }\n};\n\nconst PLUS_CODE = 43; // +\nconst MINUS_CODE = 45; // -\n\nconst plugin = {\n name: 'assignment',\n assignmentOperators: new Set(['=', '*=', '**=', '/=', '%=', '+=', '-=', '<<=', '>>=', '>>>=', '&=', '^=', '|=', '||=', '&&=', '??=']),\n updateOperators: [PLUS_CODE, MINUS_CODE],\n assignmentPrecedence: 0.9,\n init(jsep) {\n const updateNodeTypes = [jsep.IDENTIFIER, jsep.MEMBER_EXP];\n plugin.assignmentOperators.forEach(op => jsep.addBinaryOp(op, plugin.assignmentPrecedence, true));\n jsep.hooks.add('gobble-token', function gobbleUpdatePrefix(env) {\n const code = this.code;\n if (plugin.updateOperators.some(c => c === code && c === this.expr.charCodeAt(this.index + 1))) {\n this.index += 2;\n env.node = {\n type: 'UpdateExpression',\n operator: code === PLUS_CODE ? '++' : '--',\n argument: this.gobbleTokenProperty(this.gobbleIdentifier()),\n prefix: true\n };\n if (!env.node.argument || !updateNodeTypes.includes(env.node.argument.type)) {\n this.throwError(`Unexpected ${env.node.operator}`);\n }\n }\n });\n jsep.hooks.add('after-token', function gobbleUpdatePostfix(env) {\n if (env.node) {\n const code = this.code;\n if (plugin.updateOperators.some(c => c === code && c === this.expr.charCodeAt(this.index + 1))) {\n if (!updateNodeTypes.includes(env.node.type)) {\n this.throwError(`Unexpected ${env.node.operator}`);\n }\n this.index += 2;\n env.node = {\n type: 'UpdateExpression',\n operator: code === PLUS_CODE ? '++' : '--',\n argument: env.node,\n prefix: false\n };\n }\n }\n });\n jsep.hooks.add('after-expression', function gobbleAssignment(env) {\n if (env.node) {\n // Note: Binaries can be chained in a single expression to respect\n // operator precedence (i.e. a = b = 1 + 2 + 3)\n // Update all binary assignment nodes in the tree\n updateBinariesToAssignments(env.node);\n }\n });\n function updateBinariesToAssignments(node) {\n if (plugin.assignmentOperators.has(node.operator)) {\n node.type = 'AssignmentExpression';\n updateBinariesToAssignments(node.left);\n updateBinariesToAssignments(node.right);\n } else if (!node.operator) {\n Object.values(node).forEach(val => {\n if (val && typeof val === 'object') {\n updateBinariesToAssignments(val);\n }\n });\n }\n }\n }\n};\n\n/* eslint-disable no-bitwise -- Convenient */\n\n// register plugins\njsep.plugins.register(index, plugin);\njsep.addUnaryOp('typeof');\njsep.addLiteral('null', null);\njsep.addLiteral('undefined', undefined);\nconst BLOCKED_PROTO_PROPERTIES = new Set(['constructor', '__proto__', '__defineGetter__', '__defineSetter__']);\nconst SafeEval = {\n /**\n * @param {jsep.Expression} ast\n * @param {Record} subs\n */\n evalAst(ast, subs) {\n switch (ast.type) {\n case 'BinaryExpression':\n case 'LogicalExpression':\n return SafeEval.evalBinaryExpression(ast, subs);\n case 'Compound':\n return SafeEval.evalCompound(ast, subs);\n case 'ConditionalExpression':\n return SafeEval.evalConditionalExpression(ast, subs);\n case 'Identifier':\n return SafeEval.evalIdentifier(ast, subs);\n case 'Literal':\n return SafeEval.evalLiteral(ast, subs);\n case 'MemberExpression':\n return SafeEval.evalMemberExpression(ast, subs);\n case 'UnaryExpression':\n return SafeEval.evalUnaryExpression(ast, subs);\n case 'ArrayExpression':\n return SafeEval.evalArrayExpression(ast, subs);\n case 'CallExpression':\n return SafeEval.evalCallExpression(ast, subs);\n case 'AssignmentExpression':\n return SafeEval.evalAssignmentExpression(ast, subs);\n default:\n throw SyntaxError('Unexpected expression', ast);\n }\n },\n evalBinaryExpression(ast, subs) {\n const result = {\n '||': (a, b) => a || b(),\n '&&': (a, b) => a && b(),\n '|': (a, b) => a | b(),\n '^': (a, b) => a ^ b(),\n '&': (a, b) => a & b(),\n // eslint-disable-next-line eqeqeq -- API\n '==': (a, b) => a == b(),\n // eslint-disable-next-line eqeqeq -- API\n '!=': (a, b) => a != b(),\n '===': (a, b) => a === b(),\n '!==': (a, b) => a !== b(),\n '<': (a, b) => a < b(),\n '>': (a, b) => a > b(),\n '<=': (a, b) => a <= b(),\n '>=': (a, b) => a >= b(),\n '<<': (a, b) => a << b(),\n '>>': (a, b) => a >> b(),\n '>>>': (a, b) => a >>> b(),\n '+': (a, b) => a + b(),\n '-': (a, b) => a - b(),\n '*': (a, b) => a * b(),\n '/': (a, b) => a / b(),\n '%': (a, b) => a % b()\n }[ast.operator](SafeEval.evalAst(ast.left, subs), () => SafeEval.evalAst(ast.right, subs));\n return result;\n },\n evalCompound(ast, subs) {\n let last;\n for (let i = 0; i < ast.body.length; i++) {\n if (ast.body[i].type === 'Identifier' && ['var', 'let', 'const'].includes(ast.body[i].name) && ast.body[i + 1] && ast.body[i + 1].type === 'AssignmentExpression') {\n // var x=2; is detected as\n // [{Identifier var}, {AssignmentExpression x=2}]\n // eslint-disable-next-line @stylistic/max-len -- Long\n // eslint-disable-next-line sonarjs/updated-loop-counter -- Convenient\n i += 1;\n }\n const expr = ast.body[i];\n last = SafeEval.evalAst(expr, subs);\n }\n return last;\n },\n evalConditionalExpression(ast, subs) {\n if (SafeEval.evalAst(ast.test, subs)) {\n return SafeEval.evalAst(ast.consequent, subs);\n }\n return SafeEval.evalAst(ast.alternate, subs);\n },\n evalIdentifier(ast, subs) {\n if (Object.hasOwn(subs, ast.name)) {\n return subs[ast.name];\n }\n throw ReferenceError(`${ast.name} is not defined`);\n },\n evalLiteral(ast) {\n return ast.value;\n },\n evalMemberExpression(ast, subs) {\n const prop = String(\n // NOTE: `String(value)` throws error when\n // value has overwritten the toString method to return non-string\n // i.e. `value = {toString: () => []}`\n ast.computed ? SafeEval.evalAst(ast.property) // `object[property]`\n : ast.property.name // `object.property` property is Identifier\n );\n const obj = SafeEval.evalAst(ast.object, subs);\n if (obj === undefined || obj === null) {\n throw TypeError(`Cannot read properties of ${obj} (reading '${prop}')`);\n }\n if (!Object.hasOwn(obj, prop) && BLOCKED_PROTO_PROPERTIES.has(prop)) {\n throw TypeError(`Cannot read properties of ${obj} (reading '${prop}')`);\n }\n const result = obj[prop];\n if (typeof result === 'function') {\n return result.bind(obj); // arrow functions aren't affected by bind.\n }\n return result;\n },\n evalUnaryExpression(ast, subs) {\n const result = {\n '-': a => -SafeEval.evalAst(a, subs),\n '!': a => !SafeEval.evalAst(a, subs),\n '~': a => ~SafeEval.evalAst(a, subs),\n // eslint-disable-next-line no-implicit-coercion -- API\n '+': a => +SafeEval.evalAst(a, subs),\n typeof: a => typeof SafeEval.evalAst(a, subs)\n }[ast.operator](ast.argument);\n return result;\n },\n evalArrayExpression(ast, subs) {\n return ast.elements.map(el => SafeEval.evalAst(el, subs));\n },\n evalCallExpression(ast, subs) {\n const args = ast.arguments.map(arg => SafeEval.evalAst(arg, subs));\n const func = SafeEval.evalAst(ast.callee, subs);\n // if (func === Function) {\n // throw new Error('Function constructor is disabled');\n // }\n return func(...args);\n },\n evalAssignmentExpression(ast, subs) {\n if (ast.left.type !== 'Identifier') {\n throw SyntaxError('Invalid left-hand side in assignment');\n }\n const id = ast.left.name;\n const value = SafeEval.evalAst(ast.right, subs);\n subs[id] = value;\n return subs[id];\n }\n};\n\n/**\n * A replacement for NodeJS' VM.Script which is also {@link https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP | Content Security Policy} friendly.\n */\nclass SafeScript {\n /**\n * @param {string} expr Expression to evaluate\n */\n constructor(expr) {\n this.code = expr;\n this.ast = jsep(this.code);\n }\n\n /**\n * @param {object} context Object whose items will be added\n * to evaluation\n * @returns {EvaluatedResult} Result of evaluated code\n */\n runInNewContext(context) {\n // `Object.create(null)` creates a prototypeless object\n const keyMap = Object.assign(Object.create(null), context);\n return SafeEval.evalAst(this.ast, keyMap);\n }\n}\n\n/* eslint-disable camelcase -- Convenient for escaping */\n\n\n/**\n * @typedef {null|boolean|number|string|object|GenericArray} JSONObject\n */\n\n/**\n * @typedef {any} AnyItem\n */\n\n/**\n * @typedef {any} AnyResult\n */\n\n/**\n * Copies array and then pushes item into it.\n * @param {GenericArray} arr Array to copy and into which to push\n * @param {AnyItem} item Array item to add (to end)\n * @returns {GenericArray} Copy of the original array\n */\nfunction push(arr, item) {\n arr = arr.slice();\n arr.push(item);\n return arr;\n}\n/**\n * Copies array and then unshifts item into it.\n * @param {AnyItem} item Array item to add (to beginning)\n * @param {GenericArray} arr Array to copy and into which to unshift\n * @returns {GenericArray} Copy of the original array\n */\nfunction unshift(item, arr) {\n arr = arr.slice();\n arr.unshift(item);\n return arr;\n}\n\n/**\n * Caught when JSONPath is used without `new` but rethrown if with `new`\n * @extends Error\n */\nclass NewError extends Error {\n /**\n * @param {AnyResult} value The evaluated scalar value\n */\n constructor(value) {\n super('JSONPath should not be called with \"new\" (it prevents return ' + 'of (unwrapped) scalar values)');\n this.avoidNew = true;\n this.value = value;\n this.name = 'NewError';\n }\n}\n\n/**\n* @typedef {object} ReturnObject\n* @property {string} path\n* @property {JSONObject} value\n* @property {object|GenericArray} parent\n* @property {string} parentProperty\n*/\n\n/**\n* @callback JSONPathCallback\n* @param {string|object} preferredOutput\n* @param {\"value\"|\"property\"} type\n* @param {ReturnObject} fullRetObj\n* @returns {void}\n*/\n\n/**\n* @callback OtherTypeCallback\n* @param {JSONObject} val\n* @param {string} path\n* @param {object|GenericArray} parent\n* @param {string} parentPropName\n* @returns {boolean}\n*/\n\n/**\n * @typedef {any} ContextItem\n */\n\n/**\n * @typedef {any} EvaluatedResult\n */\n\n/**\n* @callback EvalCallback\n* @param {string} code\n* @param {ContextItem} context\n* @returns {EvaluatedResult}\n*/\n\n/**\n * @typedef {typeof SafeScript} EvalClass\n */\n\n/**\n * @typedef {object} JSONPathOptions\n * @property {JSON} json\n * @property {string|string[]} path\n * @property {\"value\"|\"path\"|\"pointer\"|\"parent\"|\"parentProperty\"|\n * \"all\"} [resultType=\"value\"]\n * @property {boolean} [flatten=false]\n * @property {boolean} [wrap=true]\n * @property {object} [sandbox={}]\n * @property {EvalCallback|EvalClass|'safe'|'native'|\n * boolean} [eval = 'safe']\n * @property {object|GenericArray|null} [parent=null]\n * @property {string|null} [parentProperty=null]\n * @property {JSONPathCallback} [callback]\n * @property {OtherTypeCallback} [otherTypeCallback] Defaults to\n * function which throws on encountering `@other`\n * @property {boolean} [autostart=true]\n */\n\n/**\n * @param {string|JSONPathOptions} opts If a string, will be treated as `expr`\n * @param {string} [expr] JSON path to evaluate\n * @param {JSON} [obj] JSON object to evaluate against\n * @param {JSONPathCallback} [callback] Passed 3 arguments: 1) desired payload\n * per `resultType`, 2) `\"value\"|\"property\"`, 3) Full returned object with\n * all payloads\n * @param {OtherTypeCallback} [otherTypeCallback] If `@other()` is at the end\n * of one's query, this will be invoked with the value of the item, its\n * path, its parent, and its parent's property name, and it should return\n * a boolean indicating whether the supplied value belongs to the \"other\"\n * type or not (or it may handle transformations and return `false`).\n * @returns {JSONPath}\n * @class\n */\nfunction JSONPath(opts, expr, obj, callback, otherTypeCallback) {\n // eslint-disable-next-line no-restricted-syntax -- Allow for pseudo-class\n if (!(this instanceof JSONPath)) {\n try {\n return new JSONPath(opts, expr, obj, callback, otherTypeCallback);\n } catch (e) {\n if (!e.avoidNew) {\n throw e;\n }\n return e.value;\n }\n }\n if (typeof opts === 'string') {\n otherTypeCallback = callback;\n callback = obj;\n obj = expr;\n expr = opts;\n opts = null;\n }\n const optObj = opts && typeof opts === 'object';\n opts = opts || {};\n this.json = opts.json || obj;\n this.path = opts.path || expr;\n this.resultType = opts.resultType || 'value';\n this.flatten = opts.flatten || false;\n this.wrap = Object.hasOwn(opts, 'wrap') ? opts.wrap : true;\n this.sandbox = opts.sandbox || {};\n this.eval = opts.eval === undefined ? 'safe' : opts.eval;\n this.ignoreEvalErrors = typeof opts.ignoreEvalErrors === 'undefined' ? false : opts.ignoreEvalErrors;\n this.parent = opts.parent || null;\n this.parentProperty = opts.parentProperty || null;\n this.callback = opts.callback || callback || null;\n this.otherTypeCallback = opts.otherTypeCallback || otherTypeCallback || function () {\n throw new TypeError('You must supply an otherTypeCallback callback option ' + 'with the @other() operator.');\n };\n if (opts.autostart !== false) {\n const args = {\n path: optObj ? opts.path : expr\n };\n if (!optObj) {\n args.json = obj;\n } else if ('json' in opts) {\n args.json = opts.json;\n }\n const ret = this.evaluate(args);\n if (!ret || typeof ret !== 'object') {\n throw new NewError(ret);\n }\n return ret;\n }\n}\n\n// PUBLIC METHODS\nJSONPath.prototype.evaluate = function (expr, json, callback, otherTypeCallback) {\n let currParent = this.parent,\n currParentProperty = this.parentProperty;\n let {\n flatten,\n wrap\n } = this;\n this.currResultType = this.resultType;\n this.currEval = this.eval;\n this.currSandbox = this.sandbox;\n callback = callback || this.callback;\n this.currOtherTypeCallback = otherTypeCallback || this.otherTypeCallback;\n json = json || this.json;\n expr = expr || this.path;\n if (expr && typeof expr === 'object' && !Array.isArray(expr)) {\n if (!expr.path && expr.path !== '') {\n throw new TypeError('You must supply a \"path\" property when providing an object ' + 'argument to JSONPath.evaluate().');\n }\n if (!Object.hasOwn(expr, 'json')) {\n throw new TypeError('You must supply a \"json\" property when providing an object ' + 'argument to JSONPath.evaluate().');\n }\n ({\n json\n } = expr);\n flatten = Object.hasOwn(expr, 'flatten') ? expr.flatten : flatten;\n this.currResultType = Object.hasOwn(expr, 'resultType') ? expr.resultType : this.currResultType;\n this.currSandbox = Object.hasOwn(expr, 'sandbox') ? expr.sandbox : this.currSandbox;\n wrap = Object.hasOwn(expr, 'wrap') ? expr.wrap : wrap;\n this.currEval = Object.hasOwn(expr, 'eval') ? expr.eval : this.currEval;\n callback = Object.hasOwn(expr, 'callback') ? expr.callback : callback;\n this.currOtherTypeCallback = Object.hasOwn(expr, 'otherTypeCallback') ? expr.otherTypeCallback : this.currOtherTypeCallback;\n currParent = Object.hasOwn(expr, 'parent') ? expr.parent : currParent;\n currParentProperty = Object.hasOwn(expr, 'parentProperty') ? expr.parentProperty : currParentProperty;\n expr = expr.path;\n }\n currParent = currParent || null;\n currParentProperty = currParentProperty || null;\n if (Array.isArray(expr)) {\n expr = JSONPath.toPathString(expr);\n }\n if (!expr && expr !== '' || !json) {\n return undefined;\n }\n const exprList = JSONPath.toPathArray(expr);\n if (exprList[0] === '$' && exprList.length > 1) {\n exprList.shift();\n }\n this._hasParentSelector = null;\n const result = this._trace(exprList, json, ['$'], currParent, currParentProperty, callback).filter(function (ea) {\n return ea && !ea.isParentSelector;\n });\n if (!result.length) {\n return wrap ? [] : undefined;\n }\n if (!wrap && result.length === 1 && !result[0].hasArrExpr) {\n return this._getPreferredOutput(result[0]);\n }\n return result.reduce((rslt, ea) => {\n const valOrPath = this._getPreferredOutput(ea);\n if (flatten && Array.isArray(valOrPath)) {\n rslt = rslt.concat(valOrPath);\n } else {\n rslt.push(valOrPath);\n }\n return rslt;\n }, []);\n};\n\n// PRIVATE METHODS\n\nJSONPath.prototype._getPreferredOutput = function (ea) {\n const resultType = this.currResultType;\n switch (resultType) {\n case 'all':\n {\n const path = Array.isArray(ea.path) ? ea.path : JSONPath.toPathArray(ea.path);\n ea.pointer = JSONPath.toPointer(path);\n ea.path = typeof ea.path === 'string' ? ea.path : JSONPath.toPathString(ea.path);\n return ea;\n }\n case 'value':\n case 'parent':\n case 'parentProperty':\n return ea[resultType];\n case 'path':\n return JSONPath.toPathString(ea[resultType]);\n case 'pointer':\n return JSONPath.toPointer(ea.path);\n default:\n throw new TypeError('Unknown result type');\n }\n};\nJSONPath.prototype._handleCallback = function (fullRetObj, callback, type) {\n if (callback) {\n const preferredOutput = this._getPreferredOutput(fullRetObj);\n fullRetObj.path = typeof fullRetObj.path === 'string' ? fullRetObj.path : JSONPath.toPathString(fullRetObj.path);\n // eslint-disable-next-line n/callback-return -- No need to return\n callback(preferredOutput, type, fullRetObj);\n }\n};\n\n/**\n *\n * @param {string} expr\n * @param {JSONObject} val\n * @param {string} path\n * @param {object|GenericArray} parent\n * @param {string} parentPropName\n * @param {JSONPathCallback} callback\n * @param {boolean} hasArrExpr\n * @param {boolean} literalPriority\n * @returns {ReturnObject|ReturnObject[]}\n */\nJSONPath.prototype._trace = function (expr, val, path, parent, parentPropName, callback, hasArrExpr, literalPriority) {\n // No expr to follow? return path and value as the result of\n // this trace branch\n let retObj;\n if (!expr.length) {\n retObj = {\n path,\n value: val,\n parent,\n parentProperty: parentPropName,\n hasArrExpr\n };\n this._handleCallback(retObj, callback, 'value');\n return retObj;\n }\n const loc = expr[0],\n x = expr.slice(1);\n\n // We need to gather the return value of recursive trace calls in order to\n // do the parent sel computation.\n const ret = [];\n /**\n *\n * @param {ReturnObject|ReturnObject[]} elems\n * @returns {void}\n */\n function addRet(elems) {\n if (Array.isArray(elems)) {\n // This was causing excessive stack size in Node (with or\n // without Babel) against our performance test:\n // `ret.push(...elems);`\n elems.forEach(t => {\n ret.push(t);\n });\n } else {\n ret.push(elems);\n }\n }\n if ((typeof loc !== 'string' || literalPriority) && val && Object.hasOwn(val, loc)) {\n // simple case--directly follow property\n addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr));\n // eslint-disable-next-line unicorn/prefer-switch -- Part of larger `if`\n } else if (loc === '*') {\n // all child properties\n this._walk(val, m => {\n addRet(this._trace(x, val[m], push(path, m), val, m, callback, true, true));\n });\n } else if (loc === '..') {\n // all descendent parent properties\n // Check remaining expression with val's immediate children\n addRet(this._trace(x, val, path, parent, parentPropName, callback, hasArrExpr));\n this._walk(val, m => {\n // We don't join m and x here because we only want parents,\n // not scalar values\n if (typeof val[m] === 'object') {\n // Keep going with recursive descent on val's\n // object children\n addRet(this._trace(expr.slice(), val[m], push(path, m), val, m, callback, true));\n }\n });\n // The parent sel computation is handled in the frame above using the\n // ancestor object of val\n } else if (loc === '^') {\n // This is not a final endpoint, so we do not invoke the callback here\n this._hasParentSelector = true;\n return {\n path: path.slice(0, -1),\n expr: x,\n isParentSelector: true\n };\n } else if (loc === '~') {\n // property name\n retObj = {\n path: push(path, loc),\n value: parentPropName,\n parent,\n parentProperty: null\n };\n this._handleCallback(retObj, callback, 'property');\n return retObj;\n } else if (loc === '$') {\n // root only\n addRet(this._trace(x, val, path, null, null, callback, hasArrExpr));\n } else if (/^(-?\\d*):(-?\\d*):?(\\d*)$/u.test(loc)) {\n // [start:end:step] Python slice syntax\n addRet(this._slice(loc, x, val, path, parent, parentPropName, callback));\n } else if (loc.indexOf('?(') === 0) {\n // [?(expr)] (filtering)\n if (this.currEval === false) {\n throw new Error('Eval [?(expr)] prevented in JSONPath expression.');\n }\n const safeLoc = loc.replace(/^\\?\\((.*?)\\)$/u, '$1');\n // check for a nested filter expression\n const nested = /@.?([^?]*)[['](\\??\\(.*?\\))(?!.\\)\\])[\\]']/gu.exec(safeLoc);\n if (nested) {\n // find if there are matches in the nested expression\n // add them to the result set if there is at least one match\n this._walk(val, m => {\n const npath = [nested[2]];\n const nvalue = nested[1] ? val[m][nested[1]] : val[m];\n const filterResults = this._trace(npath, nvalue, path, parent, parentPropName, callback, true);\n if (filterResults.length > 0) {\n addRet(this._trace(x, val[m], push(path, m), val, m, callback, true));\n }\n });\n } else {\n this._walk(val, m => {\n if (this._eval(safeLoc, val[m], m, path, parent, parentPropName)) {\n addRet(this._trace(x, val[m], push(path, m), val, m, callback, true));\n }\n });\n }\n } else if (loc[0] === '(') {\n // [(expr)] (dynamic property/index)\n if (this.currEval === false) {\n throw new Error('Eval [(expr)] prevented in JSONPath expression.');\n }\n // As this will resolve to a property name (but we don't know it\n // yet), property and parent information is relative to the\n // parent of the property to which this expression will resolve\n addRet(this._trace(unshift(this._eval(loc, val, path.at(-1), path.slice(0, -1), parent, parentPropName), x), val, path, parent, parentPropName, callback, hasArrExpr));\n } else if (loc[0] === '@') {\n // value type: @boolean(), etc.\n let addType = false;\n const valueType = loc.slice(1, -2);\n switch (valueType) {\n case 'scalar':\n if (!val || !['object', 'function'].includes(typeof val)) {\n addType = true;\n }\n break;\n case 'boolean':\n case 'string':\n case 'undefined':\n case 'function':\n if (typeof val === valueType) {\n addType = true;\n }\n break;\n case 'integer':\n if (Number.isFinite(val) && !(val % 1)) {\n addType = true;\n }\n break;\n case 'number':\n if (Number.isFinite(val)) {\n addType = true;\n }\n break;\n case 'nonFinite':\n if (typeof val === 'number' && !Number.isFinite(val)) {\n addType = true;\n }\n break;\n case 'object':\n if (val && typeof val === valueType) {\n addType = true;\n }\n break;\n case 'array':\n if (Array.isArray(val)) {\n addType = true;\n }\n break;\n case 'other':\n addType = this.currOtherTypeCallback(val, path, parent, parentPropName);\n break;\n case 'null':\n if (val === null) {\n addType = true;\n }\n break;\n /* c8 ignore next 2 */\n default:\n throw new TypeError('Unknown value type ' + valueType);\n }\n if (addType) {\n retObj = {\n path,\n value: val,\n parent,\n parentProperty: parentPropName\n };\n this._handleCallback(retObj, callback, 'value');\n return retObj;\n }\n // `-escaped property\n } else if (loc[0] === '`' && val && Object.hasOwn(val, loc.slice(1))) {\n const locProp = loc.slice(1);\n addRet(this._trace(x, val[locProp], push(path, locProp), val, locProp, callback, hasArrExpr, true));\n } else if (loc.includes(',')) {\n // [name1,name2,...]\n const parts = loc.split(',');\n for (const part of parts) {\n addRet(this._trace(unshift(part, x), val, path, parent, parentPropName, callback, true));\n }\n // simple case--directly follow property\n } else if (!literalPriority && val && Object.hasOwn(val, loc)) {\n addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr, true));\n }\n\n // We check the resulting values for parent selections. For parent\n // selections we discard the value object and continue the trace with the\n // current val object\n if (this._hasParentSelector) {\n for (let t = 0; t < ret.length; t++) {\n const rett = ret[t];\n if (rett && rett.isParentSelector) {\n const tmp = this._trace(rett.expr, val, rett.path, parent, parentPropName, callback, hasArrExpr);\n if (Array.isArray(tmp)) {\n ret[t] = tmp[0];\n const tl = tmp.length;\n for (let tt = 1; tt < tl; tt++) {\n // eslint-disable-next-line @stylistic/max-len -- Long\n // eslint-disable-next-line sonarjs/updated-loop-counter -- Convenient\n t++;\n ret.splice(t, 0, tmp[tt]);\n }\n } else {\n ret[t] = tmp;\n }\n }\n }\n }\n return ret;\n};\nJSONPath.prototype._walk = function (val, f) {\n if (Array.isArray(val)) {\n const n = val.length;\n for (let i = 0; i < n; i++) {\n f(i);\n }\n } else if (val && typeof val === 'object') {\n Object.keys(val).forEach(m => {\n f(m);\n });\n }\n};\nJSONPath.prototype._slice = function (loc, expr, val, path, parent, parentPropName, callback) {\n if (!Array.isArray(val)) {\n return undefined;\n }\n const len = val.length,\n parts = loc.split(':'),\n step = parts[2] && Number.parseInt(parts[2]) || 1;\n let start = parts[0] && Number.parseInt(parts[0]) || 0,\n end = parts[1] && Number.parseInt(parts[1]) || len;\n start = start < 0 ? Math.max(0, start + len) : Math.min(len, start);\n end = end < 0 ? Math.max(0, end + len) : Math.min(len, end);\n const ret = [];\n for (let i = start; i < end; i += step) {\n const tmp = this._trace(unshift(i, expr), val, path, parent, parentPropName, callback, true);\n // Should only be possible to be an array here since first part of\n // ``unshift(i, expr)` passed in above would not be empty, nor `~`,\n // nor begin with `@` (as could return objects)\n // This was causing excessive stack size in Node (with or\n // without Babel) against our performance test: `ret.push(...tmp);`\n tmp.forEach(t => {\n ret.push(t);\n });\n }\n return ret;\n};\nJSONPath.prototype._eval = function (code, _v, _vname, path, parent, parentPropName) {\n this.currSandbox._$_parentProperty = parentPropName;\n this.currSandbox._$_parent = parent;\n this.currSandbox._$_property = _vname;\n this.currSandbox._$_root = this.json;\n this.currSandbox._$_v = _v;\n const containsPath = code.includes('@path');\n if (containsPath) {\n this.currSandbox._$_path = JSONPath.toPathString(path.concat([_vname]));\n }\n const scriptCacheKey = this.currEval + 'Script:' + code;\n if (!JSONPath.cache[scriptCacheKey]) {\n let script = code.replaceAll('@parentProperty', '_$_parentProperty').replaceAll('@parent', '_$_parent').replaceAll('@property', '_$_property').replaceAll('@root', '_$_root').replaceAll(/@([.\\s)[])/gu, '_$_v$1');\n if (containsPath) {\n script = script.replaceAll('@path', '_$_path');\n }\n if (this.currEval === 'safe' || this.currEval === true || this.currEval === undefined) {\n JSONPath.cache[scriptCacheKey] = new this.safeVm.Script(script);\n } else if (this.currEval === 'native') {\n JSONPath.cache[scriptCacheKey] = new this.vm.Script(script);\n } else if (typeof this.currEval === 'function' && this.currEval.prototype && Object.hasOwn(this.currEval.prototype, 'runInNewContext')) {\n const CurrEval = this.currEval;\n JSONPath.cache[scriptCacheKey] = new CurrEval(script);\n } else if (typeof this.currEval === 'function') {\n JSONPath.cache[scriptCacheKey] = {\n runInNewContext: context => this.currEval(script, context)\n };\n } else {\n throw new TypeError(`Unknown \"eval\" property \"${this.currEval}\"`);\n }\n }\n try {\n return JSONPath.cache[scriptCacheKey].runInNewContext(this.currSandbox);\n } catch (e) {\n if (this.ignoreEvalErrors) {\n return false;\n }\n throw new Error('jsonPath: ' + e.message + ': ' + code);\n }\n};\n\n// PUBLIC CLASS PROPERTIES AND METHODS\n\n// Could store the cache object itself\nJSONPath.cache = {};\n\n/**\n * @param {string[]} pathArr Array to convert\n * @returns {string} The path string\n */\nJSONPath.toPathString = function (pathArr) {\n const x = pathArr,\n n = x.length;\n let p = '$';\n for (let i = 1; i < n; i++) {\n if (!/^(~|\\^|@.*?\\(\\))$/u.test(x[i])) {\n p += /^[0-9*]+$/u.test(x[i]) ? '[' + x[i] + ']' : \"['\" + x[i] + \"']\";\n }\n }\n return p;\n};\n\n/**\n * @param {string} pointer JSON Path\n * @returns {string} JSON Pointer\n */\nJSONPath.toPointer = function (pointer) {\n const x = pointer,\n n = x.length;\n let p = '';\n for (let i = 1; i < n; i++) {\n if (!/^(~|\\^|@.*?\\(\\))$/u.test(x[i])) {\n p += '/' + x[i].toString().replaceAll('~', '~0').replaceAll('/', '~1');\n }\n }\n return p;\n};\n\n/**\n * @param {string} expr Expression to convert\n * @returns {string[]}\n */\nJSONPath.toPathArray = function (expr) {\n const {\n cache\n } = JSONPath;\n if (cache[expr]) {\n return cache[expr].concat();\n }\n const subx = [];\n const normalized = expr\n // Properties\n .replaceAll(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\\(\\)/gu, ';$&;')\n // Parenthetical evaluations (filtering and otherwise), directly\n // within brackets or single quotes\n .replaceAll(/[['](\\??\\(.*?\\))[\\]'](?!.\\])/gu, function ($0, $1) {\n return '[#' + (subx.push($1) - 1) + ']';\n })\n // Escape periods and tildes within properties\n .replaceAll(/\\[['\"]([^'\\]]*)['\"]\\]/gu, function ($0, prop) {\n return \"['\" + prop.replaceAll('.', '%@%').replaceAll('~', '%%@@%%') + \"']\";\n })\n // Properties operator\n .replaceAll('~', ';~;')\n // Split by property boundaries\n .replaceAll(/['\"]?\\.['\"]?(?![^[]*\\])|\\[['\"]?/gu, ';')\n // Reinsert periods within properties\n .replaceAll('%@%', '.')\n // Reinsert tildes within properties\n .replaceAll('%%@@%%', '~')\n // Parent\n .replaceAll(/(?:;)?(\\^+)(?:;)?/gu, function ($0, ups) {\n return ';' + ups.split('').join(';') + ';';\n })\n // Descendents\n .replaceAll(/;;;|;;/gu, ';..;')\n // Remove trailing\n .replaceAll(/;$|'?\\]|'$/gu, '');\n const exprList = normalized.split(';').map(function (exp) {\n const match = exp.match(/#(\\d+)/u);\n return !match || !match[1] ? exp : subx[match[1]];\n });\n cache[expr] = exprList;\n return cache[expr].concat();\n};\nJSONPath.prototype.safeVm = {\n Script: SafeScript\n};\n\nJSONPath.prototype.vm = vm;\n\nexport { JSONPath };\n","import proc from 'node:child_process';\nimport * as jsonpath from 'jsonpath-plus';\nexport class AzureAuth {\n isAuthProvider(user) {\n if (!user || !user.authProvider) {\n return false;\n }\n return user.authProvider.name === 'azure';\n }\n async applyAuthentication(user, opts) {\n const token = this.getToken(user);\n if (token) {\n opts.headers['Authorization'] = `Bearer ${token}`;\n }\n }\n getToken(user) {\n const config = user.authProvider.config;\n if (this.isExpired(config)) {\n this.updateAccessToken(config);\n }\n return config['access-token'];\n }\n isExpired(config) {\n const token = config['access-token'];\n const expiry = config.expiry;\n const expiresOn = config['expires-on'];\n if (!token) {\n return true;\n }\n if (!expiry && !expiresOn) {\n return false;\n }\n const expiresOnDate = expiresOn ? new Date(parseInt(expiresOn, 10) * 1000) : undefined;\n const expiration = expiry ? Date.parse(expiry) : expiresOnDate.getTime();\n if (expiration < Date.now()) {\n return true;\n }\n return false;\n }\n updateAccessToken(config) {\n let cmd = config['cmd-path'];\n if (!cmd) {\n throw new Error('Token is expired!');\n }\n // Wrap cmd in quotes to make it cope with spaces in path\n cmd = `\"${cmd}\"`;\n const args = config['cmd-args'];\n if (args) {\n cmd = cmd + ' ' + args;\n }\n // TODO: Cache to file?\n // TODO: do this asynchronously\n let output;\n try {\n output = proc.execSync(cmd);\n }\n catch (err) {\n throw new Error('Failed to refresh token: ' + err);\n }\n const resultObj = JSON.parse(output);\n const tokenPathKeyInConfig = config['token-key'];\n const expiryPathKeyInConfig = config['expiry-key'];\n // Format in file is {}, so slice it out and add '$'\n const tokenPathKey = '$' + tokenPathKeyInConfig.slice(1, -1);\n const expiryPathKey = '$' + expiryPathKeyInConfig.slice(1, -1);\n config['access-token'] = jsonpath.JSONPath({ path: tokenPathKey, json: resultObj });\n config.expiry = jsonpath.JSONPath({ path: expiryPathKey, json: resultObj });\n }\n}\n//# sourceMappingURL=azure_auth.js.map","import fs from 'node:fs';\nexport const ActionOnInvalid = {\n THROW: 'throw',\n FILTER: 'filter',\n};\nfunction defaultNewConfigOptions() {\n return {\n onInvalidEntry: ActionOnInvalid.THROW,\n };\n}\nexport function newClusters(a, opts) {\n if (!Array.isArray(a)) {\n return [];\n }\n const options = Object.assign(defaultNewConfigOptions(), opts || {});\n return a.map(clusterIterator(options.onInvalidEntry)).filter(Boolean);\n}\nexport function exportCluster(cluster) {\n return {\n name: cluster.name,\n cluster: {\n server: cluster.server,\n 'certificate-authority-data': cluster.caData,\n 'certificate-authority': cluster.caFile,\n 'insecure-skip-tls-verify': cluster.skipTLSVerify,\n 'tls-server-name': cluster.tlsServerName,\n 'proxy-url': cluster.proxyUrl,\n },\n };\n}\nfunction clusterIterator(onInvalidEntry) {\n return (elt, i, list) => {\n try {\n if (!elt.name) {\n throw new Error(`clusters[${i}].name is missing`);\n }\n if (!elt.cluster) {\n throw new Error(`clusters[${i}].cluster is missing`);\n }\n if (!elt.cluster.server) {\n throw new Error(`clusters[${i}].cluster.server is missing`);\n }\n return {\n caData: elt.cluster['certificate-authority-data'],\n caFile: elt.cluster['certificate-authority'],\n name: elt.name,\n server: elt.cluster.server.replace(/\\/$/, ''),\n skipTLSVerify: elt.cluster['insecure-skip-tls-verify'] === true,\n tlsServerName: elt.cluster['tls-server-name'],\n proxyUrl: elt.cluster['proxy-url'],\n };\n }\n catch (err) {\n switch (onInvalidEntry) {\n case ActionOnInvalid.FILTER:\n return null;\n default:\n case ActionOnInvalid.THROW:\n throw err;\n }\n }\n };\n}\nexport function newUsers(a, opts) {\n if (!Array.isArray(a)) {\n return [];\n }\n const options = Object.assign(defaultNewConfigOptions(), opts || {});\n return a.map(userIterator(options.onInvalidEntry)).filter(Boolean);\n}\nexport function exportUser(user) {\n return {\n name: user.name,\n user: {\n as: user.impersonateUser,\n 'auth-provider': user.authProvider,\n 'client-certificate-data': user.certData,\n 'client-certificate': user.certFile,\n exec: user.exec,\n 'client-key-data': user.keyData,\n 'client-key': user.keyFile,\n token: user.token,\n password: user.password,\n username: user.username,\n },\n };\n}\nfunction userIterator(onInvalidEntry) {\n return (elt, i, list) => {\n try {\n if (!elt.name) {\n throw new Error(`users[${i}].name is missing`);\n }\n return {\n authProvider: elt.user ? elt.user['auth-provider'] : null,\n certData: elt.user ? elt.user['client-certificate-data'] : null,\n certFile: elt.user ? elt.user['client-certificate'] : null,\n exec: elt.user ? elt.user.exec : null,\n keyData: elt.user ? elt.user['client-key-data'] : null,\n keyFile: elt.user ? elt.user['client-key'] : null,\n name: elt.name,\n token: findToken(elt.user),\n password: elt.user ? elt.user.password : null,\n username: elt.user ? elt.user.username : null,\n impersonateUser: elt.user ? elt.user.as : null,\n };\n }\n catch (err) {\n switch (onInvalidEntry) {\n case ActionOnInvalid.FILTER:\n return null;\n default:\n case ActionOnInvalid.THROW:\n throw err;\n }\n }\n };\n}\nfunction findToken(user) {\n if (user) {\n if (user.token) {\n return user.token;\n }\n if (user['token-file']) {\n return fs.readFileSync(user['token-file']).toString();\n }\n }\n}\nexport function newContexts(a, opts) {\n if (!Array.isArray(a)) {\n return [];\n }\n const options = Object.assign(defaultNewConfigOptions(), opts || {});\n return a.map(contextIterator(options.onInvalidEntry)).filter(Boolean);\n}\nexport function exportContext(ctx) {\n return {\n name: ctx.name,\n context: ctx,\n };\n}\nfunction contextIterator(onInvalidEntry) {\n return (elt, i, list) => {\n try {\n if (!elt.name) {\n throw new Error(`contexts[${i}].name is missing`);\n }\n if (!elt.context) {\n throw new Error(`contexts[${i}].context is missing`);\n }\n if (!elt.context.cluster) {\n throw new Error(`contexts[${i}].context.cluster is missing`);\n }\n return {\n cluster: elt.context.cluster,\n name: elt.name,\n user: elt.context.user || undefined,\n namespace: elt.context.namespace || undefined,\n };\n }\n catch (err) {\n switch (onInvalidEntry) {\n case ActionOnInvalid.FILTER:\n return null;\n default:\n case ActionOnInvalid.THROW:\n throw err;\n }\n }\n };\n}\n//# sourceMappingURL=config_types.js.map","import child_process from 'node:child_process';\nexport class ExecAuth {\n constructor() {\n this.tokenCache = {};\n this.execFn = child_process.spawn;\n }\n isAuthProvider(user) {\n if (!user) {\n return false;\n }\n if (user.exec) {\n return true;\n }\n if (!user.authProvider) {\n return false;\n }\n return (user.authProvider.name === 'exec' || !!(user.authProvider.config && user.authProvider.config.exec));\n }\n async applyAuthentication(user, opts) {\n const credential = await this.getCredential(user);\n if (!credential) {\n return;\n }\n if (credential.status.clientCertificateData) {\n opts.cert = credential.status.clientCertificateData;\n }\n if (credential.status.clientKeyData) {\n opts.key = credential.status.clientKeyData;\n }\n const token = this.getToken(credential);\n if (token) {\n if (!opts.headers) {\n opts.headers = {};\n }\n opts.headers['Authorization'] = `Bearer ${token}`;\n }\n }\n getToken(credential) {\n if (!credential) {\n return null;\n }\n if (credential.status.token) {\n return credential.status.token;\n }\n return null;\n }\n async getCredential(user) {\n // TODO: Add a unit test for token caching.\n const cachedToken = this.tokenCache[user.name];\n if (cachedToken) {\n const date = Date.parse(cachedToken.status.expirationTimestamp);\n if (date > Date.now()) {\n return cachedToken;\n }\n this.tokenCache[user.name] = null;\n }\n let exec = null;\n if (user.authProvider && user.authProvider.config) {\n exec = user.authProvider.config.exec;\n }\n if (user.exec) {\n exec = user.exec;\n }\n if (!exec) {\n return null;\n }\n if (!exec.command) {\n throw new Error('No command was specified for exec authProvider!');\n }\n let opts = {};\n if (exec.env) {\n const env = process.env;\n exec.env.forEach((elt) => (env[elt.name] = elt.value));\n opts = { ...opts, env };\n }\n return new Promise((resolve, reject) => {\n let stdoutData = '';\n let stderrData = '';\n let savedError = undefined;\n const subprocess = this.execFn(exec.command, exec.args, opts);\n subprocess.stdout.setEncoding('utf8');\n subprocess.stderr.setEncoding('utf8');\n subprocess.stdout.on('data', (data) => {\n stdoutData += data;\n });\n subprocess.stderr.on('data', (data) => {\n stderrData += data;\n });\n subprocess.on('error', (error) => {\n savedError = error;\n });\n subprocess.on('close', (code) => {\n if (savedError) {\n reject(savedError);\n return;\n }\n if (code !== 0) {\n reject(new Error(stderrData));\n return;\n }\n try {\n const obj = JSON.parse(stdoutData);\n this.tokenCache[user.name] = obj;\n resolve(obj);\n }\n catch (error) {\n reject(error);\n }\n });\n });\n }\n}\n//# sourceMappingURL=exec_auth.js.map","import fs from 'node:fs';\nexport class FileAuth {\n constructor() {\n this.token = null;\n this.lastRead = null;\n }\n isAuthProvider(user) {\n return user.authProvider && user.authProvider.config && user.authProvider.config.tokenFile;\n }\n async applyAuthentication(user, opts) {\n if (this.token == null) {\n this.refreshToken(user.authProvider.config.tokenFile);\n }\n if (this.isTokenExpired()) {\n this.refreshToken(user.authProvider.config.tokenFile);\n }\n if (this.token) {\n opts.headers['Authorization'] = `Bearer ${this.token}`;\n }\n }\n refreshToken(filePath) {\n // TODO make this async?\n this.token = fs.readFileSync(filePath).toString('utf-8');\n this.lastRead = new Date();\n }\n isTokenExpired() {\n if (this.lastRead === null) {\n return true;\n }\n const now = new Date();\n const delta = (now.getTime() - this.lastRead.getTime()) / 1000;\n // For now just refresh every 60 seconds. This is imperfect since the token\n // could be out of date for this time, but it is unlikely and it's also what\n // the client-go library does.\n // TODO: Use file notifications instead?\n return delta > 60;\n }\n}\n//# sourceMappingURL=file_auth.js.map","import proc from 'node:child_process';\nimport * as jsonpath from 'jsonpath-plus';\nexport class GoogleCloudPlatformAuth {\n isAuthProvider(user) {\n if (!user || !user.authProvider) {\n return false;\n }\n return user.authProvider.name === 'gcp';\n }\n async applyAuthentication(user, opts) {\n const token = this.getToken(user);\n if (token) {\n opts.headers['Authorization'] = `Bearer ${token}`;\n }\n }\n getToken(user) {\n const config = user.authProvider.config;\n if (this.isExpired(config)) {\n this.updateAccessToken(config);\n }\n return config['access-token'];\n }\n isExpired(config) {\n const token = config['access-token'];\n const expiry = config.expiry;\n if (!token) {\n return true;\n }\n if (!expiry) {\n return false;\n }\n const expiration = Date.parse(expiry);\n if (expiration < Date.now()) {\n return true;\n }\n return false;\n }\n updateAccessToken(config) {\n let cmd = config['cmd-path'];\n if (!cmd) {\n throw new Error('Token is expired!');\n }\n // Wrap cmd in quotes to make it cope with spaces in path\n cmd = `\"${cmd}\"`;\n const args = config['cmd-args'];\n if (args) {\n cmd = cmd + ' ' + args;\n }\n // TODO: Cache to file?\n // TODO: do this asynchronously\n let output;\n try {\n output = proc.execSync(cmd);\n }\n catch (err) {\n throw new Error('Failed to refresh token: ' + err);\n }\n const resultObj = JSON.parse(output);\n const tokenPathKeyInConfig = config['token-key'];\n const expiryPathKeyInConfig = config['expiry-key'];\n // Format in file is {}, so slice it out and add '$'\n const tokenPathKey = '$' + tokenPathKeyInConfig.slice(1, -1);\n const expiryPathKey = '$' + expiryPathKeyInConfig.slice(1, -1);\n config['access-token'] = jsonpath.JSONPath({ path: tokenPathKey, json: resultObj });\n config.expiry = jsonpath.JSONPath({ path: expiryPathKey, json: resultObj });\n }\n}\n//# sourceMappingURL=gcp_auth.js.map","export class Observable {\n constructor(promise) {\n this.promise = promise;\n }\n toPromise() {\n return this.promise;\n }\n pipe(callback) {\n return new Observable(this.promise.then(callback));\n }\n}\nexport function from(promise) {\n return new Observable(promise);\n}\nexport function of(value) {\n return new Observable(Promise.resolve(value));\n}\nexport function mergeMap(callback) {\n return (value) => callback(value).toPromise();\n}\nexport function map(callback) {\n return callback;\n}\n//# sourceMappingURL=rxjsStub.js.map","import { ResponseContext } from './http.js';\nimport { from } from '../rxjsStub.js';\nimport fetch from \"node-fetch\";\nexport class IsomorphicFetchHttpLibrary {\n send(request) {\n let method = request.getHttpMethod().toString();\n let body = request.getBody();\n const resultPromise = fetch(request.getUrl(), {\n method: method,\n body: body,\n headers: request.getHeaders(),\n agent: request.getAgent(),\n }).then((resp) => {\n const headers = {};\n resp.headers.forEach((value, name) => {\n headers[name] = value;\n });\n const body = {\n text: () => resp.text(),\n binary: () => resp.buffer()\n };\n return new ResponseContext(resp.status, headers, body);\n });\n return from(resultPromise);\n }\n}\n//# sourceMappingURL=isomorphic-fetch.js.map","import { URL } from 'url';\nimport { from } from '../rxjsStub.js';\nexport * from './isomorphic-fetch.js';\n/**\n * Represents an HTTP method.\n */\nexport var HttpMethod;\n(function (HttpMethod) {\n HttpMethod[\"GET\"] = \"GET\";\n HttpMethod[\"HEAD\"] = \"HEAD\";\n HttpMethod[\"POST\"] = \"POST\";\n HttpMethod[\"PUT\"] = \"PUT\";\n HttpMethod[\"DELETE\"] = \"DELETE\";\n HttpMethod[\"CONNECT\"] = \"CONNECT\";\n HttpMethod[\"OPTIONS\"] = \"OPTIONS\";\n HttpMethod[\"TRACE\"] = \"TRACE\";\n HttpMethod[\"PATCH\"] = \"PATCH\";\n})(HttpMethod || (HttpMethod = {}));\nexport class HttpException extends Error {\n constructor(msg) {\n super(msg);\n }\n}\nfunction ensureAbsoluteUrl(url) {\n if (url.startsWith(\"http://\") || url.startsWith(\"https://\")) {\n return url;\n }\n throw new Error(\"You need to define an absolute base url for the server.\");\n}\n/**\n * Represents an HTTP request context\n */\nexport class RequestContext {\n /**\n * Creates the request context using a http method and request resource url\n *\n * @param url url of the requested resource\n * @param httpMethod http method\n */\n constructor(url, httpMethod) {\n this.httpMethod = httpMethod;\n this.headers = {};\n this.body = undefined;\n this.agent = undefined;\n this.url = new URL(ensureAbsoluteUrl(url));\n }\n /*\n * Returns the url set in the constructor including the query string\n *\n */\n getUrl() {\n return this.url.toString().endsWith(\"/\") ?\n this.url.toString().slice(0, -1)\n : this.url.toString();\n }\n /**\n * Replaces the url set in the constructor with this url.\n *\n */\n setUrl(url) {\n this.url = new URL(ensureAbsoluteUrl(url));\n }\n /**\n * Sets the body of the http request either as a string or FormData\n *\n * Note that setting a body on a HTTP GET, HEAD, DELETE, CONNECT or TRACE\n * request is discouraged.\n * https://httpwg.org/http-core/draft-ietf-httpbis-semantics-latest.html#rfc.section.7.3.1\n *\n * @param body the body of the request\n */\n setBody(body) {\n this.body = body;\n }\n getHttpMethod() {\n return this.httpMethod;\n }\n getHeaders() {\n return this.headers;\n }\n getBody() {\n return this.body;\n }\n setQueryParam(name, value) {\n this.url.searchParams.set(name, value);\n }\n appendQueryParam(name, value) {\n this.url.searchParams.append(name, value);\n }\n /**\n * Sets a cookie with the name and value. NO check for duplicate cookies is performed\n *\n */\n addCookie(name, value) {\n if (!this.headers[\"Cookie\"]) {\n this.headers[\"Cookie\"] = \"\";\n }\n this.headers[\"Cookie\"] += name + \"=\" + value + \"; \";\n }\n setHeaderParam(key, value) {\n this.headers[key] = value;\n }\n setAgent(agent) {\n this.agent = agent;\n }\n getAgent() {\n return this.agent;\n }\n}\n/**\n * Helper class to generate a `ResponseBody` from binary data\n */\nexport class SelfDecodingBody {\n constructor(dataSource) {\n this.dataSource = dataSource;\n }\n binary() {\n return this.dataSource;\n }\n async text() {\n const data = await this.dataSource;\n return data.toString();\n }\n}\nexport class ResponseContext {\n constructor(httpStatusCode, headers, body) {\n this.httpStatusCode = httpStatusCode;\n this.headers = headers;\n this.body = body;\n }\n /**\n * Parse header value in the form `value; param1=\"value1\"`\n *\n * E.g. for Content-Type or Content-Disposition\n * Parameter names are converted to lower case\n * The first parameter is returned with the key `\"\"`\n */\n getParsedHeader(headerName) {\n const result = {};\n if (!this.headers[headerName]) {\n return result;\n }\n const parameters = this.headers[headerName].split(\";\");\n for (const parameter of parameters) {\n let [key, value] = parameter.split(\"=\", 2);\n if (!key) {\n continue;\n }\n key = key.toLowerCase().trim();\n if (value === undefined) {\n result[\"\"] = key;\n }\n else {\n value = value.trim();\n if (value.startsWith('\"') && value.endsWith('\"')) {\n value = value.substring(1, value.length - 1);\n }\n result[key] = value;\n }\n }\n return result;\n }\n async getBodyAsFile() {\n const data = await this.body.binary();\n const fileName = this.getParsedHeader(\"content-disposition\")[\"filename\"] || \"\";\n return { data, name: fileName };\n }\n /**\n * Use a heuristic to get a body of unknown data structure.\n * Return as string if possible, otherwise as binary.\n */\n getBodyAsAny() {\n try {\n return this.body.text();\n }\n catch { }\n try {\n return this.body.binary();\n }\n catch { }\n return Promise.resolve(undefined);\n }\n}\nexport function wrapHttpLibrary(promiseHttpLibrary) {\n return {\n send(request) {\n return from(promiseHttpLibrary.send(request));\n }\n };\n}\nexport class HttpInfo extends ResponseContext {\n constructor(httpStatusCode, headers, body, data) {\n super(httpStatusCode, headers, body);\n this.data = data;\n }\n}\n//# sourceMappingURL=http.js.map","/**\n * Applies apiKey authentication to the request context.\n */\nexport class BearerTokenAuthentication {\n /**\n * Configures this api key authentication with the necessary properties\n *\n * @param apiKey: The api key to be used for every request\n */\n constructor(apiKey) {\n this.apiKey = apiKey;\n }\n getName() {\n return \"BearerToken\";\n }\n applySecurityAuthentication(context) {\n context.setHeaderParam(\"authorization\", this.apiKey);\n }\n}\n/**\n * Creates the authentication methods from a swagger description.\n *\n */\nexport function configureAuthMethods(config) {\n let authMethods = {};\n if (!config) {\n return authMethods;\n }\n authMethods[\"default\"] = config[\"default\"];\n if (config[\"BearerToken\"]) {\n authMethods[\"BearerToken\"] = new BearerTokenAuthentication(config[\"BearerToken\"]);\n }\n return authMethods;\n}\n//# sourceMappingURL=auth.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceReference holds a reference to Service.legacy.k8s.io\n*/\nexport class AdmissionregistrationV1ServiceReference {\n static getAttributeTypeMap() {\n return AdmissionregistrationV1ServiceReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nAdmissionregistrationV1ServiceReference.discriminator = undefined;\nAdmissionregistrationV1ServiceReference.mapping = undefined;\nAdmissionregistrationV1ServiceReference.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespace\",\n \"baseName\": \"namespace\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"path\",\n \"baseName\": \"path\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"port\",\n \"baseName\": \"port\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=AdmissionregistrationV1ServiceReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* WebhookClientConfig contains the information to make a TLS connection with the webhook\n*/\nexport class AdmissionregistrationV1WebhookClientConfig {\n static getAttributeTypeMap() {\n return AdmissionregistrationV1WebhookClientConfig.attributeTypeMap;\n }\n constructor() {\n }\n}\nAdmissionregistrationV1WebhookClientConfig.discriminator = undefined;\nAdmissionregistrationV1WebhookClientConfig.mapping = undefined;\nAdmissionregistrationV1WebhookClientConfig.attributeTypeMap = [\n {\n \"name\": \"caBundle\",\n \"baseName\": \"caBundle\",\n \"type\": \"string\",\n \"format\": \"byte\"\n },\n {\n \"name\": \"service\",\n \"baseName\": \"service\",\n \"type\": \"AdmissionregistrationV1ServiceReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"url\",\n \"baseName\": \"url\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=AdmissionregistrationV1WebhookClientConfig.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceReference holds a reference to Service.legacy.k8s.io\n*/\nexport class ApiextensionsV1ServiceReference {\n static getAttributeTypeMap() {\n return ApiextensionsV1ServiceReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nApiextensionsV1ServiceReference.discriminator = undefined;\nApiextensionsV1ServiceReference.mapping = undefined;\nApiextensionsV1ServiceReference.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespace\",\n \"baseName\": \"namespace\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"path\",\n \"baseName\": \"path\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"port\",\n \"baseName\": \"port\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=ApiextensionsV1ServiceReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* WebhookClientConfig contains the information to make a TLS connection with the webhook.\n*/\nexport class ApiextensionsV1WebhookClientConfig {\n static getAttributeTypeMap() {\n return ApiextensionsV1WebhookClientConfig.attributeTypeMap;\n }\n constructor() {\n }\n}\nApiextensionsV1WebhookClientConfig.discriminator = undefined;\nApiextensionsV1WebhookClientConfig.mapping = undefined;\nApiextensionsV1WebhookClientConfig.attributeTypeMap = [\n {\n \"name\": \"caBundle\",\n \"baseName\": \"caBundle\",\n \"type\": \"string\",\n \"format\": \"byte\"\n },\n {\n \"name\": \"service\",\n \"baseName\": \"service\",\n \"type\": \"ApiextensionsV1ServiceReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"url\",\n \"baseName\": \"url\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=ApiextensionsV1WebhookClientConfig.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceReference holds a reference to Service.legacy.k8s.io\n*/\nexport class ApiregistrationV1ServiceReference {\n static getAttributeTypeMap() {\n return ApiregistrationV1ServiceReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nApiregistrationV1ServiceReference.discriminator = undefined;\nApiregistrationV1ServiceReference.mapping = undefined;\nApiregistrationV1ServiceReference.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespace\",\n \"baseName\": \"namespace\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"port\",\n \"baseName\": \"port\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=ApiregistrationV1ServiceReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* TokenRequest requests a token for a given service account.\n*/\nexport class AuthenticationV1TokenRequest {\n static getAttributeTypeMap() {\n return AuthenticationV1TokenRequest.attributeTypeMap;\n }\n constructor() {\n }\n}\nAuthenticationV1TokenRequest.discriminator = undefined;\nAuthenticationV1TokenRequest.mapping = undefined;\nAuthenticationV1TokenRequest.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1TokenRequestSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1TokenRequestStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=AuthenticationV1TokenRequest.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* EndpointPort is a tuple that describes a single port. Deprecated: This API is deprecated in v1.33+.\n*/\nexport class CoreV1EndpointPort {\n static getAttributeTypeMap() {\n return CoreV1EndpointPort.attributeTypeMap;\n }\n constructor() {\n }\n}\nCoreV1EndpointPort.discriminator = undefined;\nCoreV1EndpointPort.mapping = undefined;\nCoreV1EndpointPort.attributeTypeMap = [\n {\n \"name\": \"appProtocol\",\n \"baseName\": \"appProtocol\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"port\",\n \"baseName\": \"port\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"protocol\",\n \"baseName\": \"protocol\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=CoreV1EndpointPort.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Event is a report of an event somewhere in the cluster. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data.\n*/\nexport class CoreV1Event {\n static getAttributeTypeMap() {\n return CoreV1Event.attributeTypeMap;\n }\n constructor() {\n }\n}\nCoreV1Event.discriminator = undefined;\nCoreV1Event.mapping = undefined;\nCoreV1Event.attributeTypeMap = [\n {\n \"name\": \"action\",\n \"baseName\": \"action\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"count\",\n \"baseName\": \"count\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"eventTime\",\n \"baseName\": \"eventTime\",\n \"type\": \"V1MicroTime\",\n \"format\": \"date-time-micro\"\n },\n {\n \"name\": \"firstTimestamp\",\n \"baseName\": \"firstTimestamp\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"involvedObject\",\n \"baseName\": \"involvedObject\",\n \"type\": \"V1ObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"lastTimestamp\",\n \"baseName\": \"lastTimestamp\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"related\",\n \"baseName\": \"related\",\n \"type\": \"V1ObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"reportingComponent\",\n \"baseName\": \"reportingComponent\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reportingInstance\",\n \"baseName\": \"reportingInstance\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"series\",\n \"baseName\": \"series\",\n \"type\": \"CoreV1EventSeries\",\n \"format\": \"\"\n },\n {\n \"name\": \"source\",\n \"baseName\": \"source\",\n \"type\": \"V1EventSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=CoreV1Event.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* EventList is a list of events.\n*/\nexport class CoreV1EventList {\n static getAttributeTypeMap() {\n return CoreV1EventList.attributeTypeMap;\n }\n constructor() {\n }\n}\nCoreV1EventList.discriminator = undefined;\nCoreV1EventList.mapping = undefined;\nCoreV1EventList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=CoreV1EventList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.\n*/\nexport class CoreV1EventSeries {\n static getAttributeTypeMap() {\n return CoreV1EventSeries.attributeTypeMap;\n }\n constructor() {\n }\n}\nCoreV1EventSeries.discriminator = undefined;\nCoreV1EventSeries.mapping = undefined;\nCoreV1EventSeries.attributeTypeMap = [\n {\n \"name\": \"count\",\n \"baseName\": \"count\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"lastObservedTime\",\n \"baseName\": \"lastObservedTime\",\n \"type\": \"V1MicroTime\",\n \"format\": \"date-time-micro\"\n }\n];\n//# sourceMappingURL=CoreV1EventSeries.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* EndpointPort represents a Port used by an EndpointSlice\n*/\nexport class DiscoveryV1EndpointPort {\n static getAttributeTypeMap() {\n return DiscoveryV1EndpointPort.attributeTypeMap;\n }\n constructor() {\n }\n}\nDiscoveryV1EndpointPort.discriminator = undefined;\nDiscoveryV1EndpointPort.mapping = undefined;\nDiscoveryV1EndpointPort.attributeTypeMap = [\n {\n \"name\": \"appProtocol\",\n \"baseName\": \"appProtocol\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"port\",\n \"baseName\": \"port\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"protocol\",\n \"baseName\": \"protocol\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=DiscoveryV1EndpointPort.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data.\n*/\nexport class EventsV1Event {\n static getAttributeTypeMap() {\n return EventsV1Event.attributeTypeMap;\n }\n constructor() {\n }\n}\nEventsV1Event.discriminator = undefined;\nEventsV1Event.mapping = undefined;\nEventsV1Event.attributeTypeMap = [\n {\n \"name\": \"action\",\n \"baseName\": \"action\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"deprecatedCount\",\n \"baseName\": \"deprecatedCount\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"deprecatedFirstTimestamp\",\n \"baseName\": \"deprecatedFirstTimestamp\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"deprecatedLastTimestamp\",\n \"baseName\": \"deprecatedLastTimestamp\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"deprecatedSource\",\n \"baseName\": \"deprecatedSource\",\n \"type\": \"V1EventSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"eventTime\",\n \"baseName\": \"eventTime\",\n \"type\": \"V1MicroTime\",\n \"format\": \"date-time-micro\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"note\",\n \"baseName\": \"note\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"regarding\",\n \"baseName\": \"regarding\",\n \"type\": \"V1ObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"related\",\n \"baseName\": \"related\",\n \"type\": \"V1ObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"reportingController\",\n \"baseName\": \"reportingController\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reportingInstance\",\n \"baseName\": \"reportingInstance\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"series\",\n \"baseName\": \"series\",\n \"type\": \"EventsV1EventSeries\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=EventsV1Event.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* EventList is a list of Event objects.\n*/\nexport class EventsV1EventList {\n static getAttributeTypeMap() {\n return EventsV1EventList.attributeTypeMap;\n }\n constructor() {\n }\n}\nEventsV1EventList.discriminator = undefined;\nEventsV1EventList.mapping = undefined;\nEventsV1EventList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=EventsV1EventList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time. How often to update the EventSeries is up to the event reporters. The default event reporter in \\\"k8s.io/client-go/tools/events/event_broadcaster.go\\\" shows how this struct is updated on heartbeats and can guide customized reporter implementations.\n*/\nexport class EventsV1EventSeries {\n static getAttributeTypeMap() {\n return EventsV1EventSeries.attributeTypeMap;\n }\n constructor() {\n }\n}\nEventsV1EventSeries.discriminator = undefined;\nEventsV1EventSeries.mapping = undefined;\nEventsV1EventSeries.attributeTypeMap = [\n {\n \"name\": \"count\",\n \"baseName\": \"count\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"lastObservedTime\",\n \"baseName\": \"lastObservedTime\",\n \"type\": \"V1MicroTime\",\n \"format\": \"date-time-micro\"\n }\n];\n//# sourceMappingURL=EventsV1EventSeries.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.\n*/\nexport class FlowcontrolV1Subject {\n static getAttributeTypeMap() {\n return FlowcontrolV1Subject.attributeTypeMap;\n }\n constructor() {\n }\n}\nFlowcontrolV1Subject.discriminator = undefined;\nFlowcontrolV1Subject.mapping = undefined;\nFlowcontrolV1Subject.attributeTypeMap = [\n {\n \"name\": \"group\",\n \"baseName\": \"group\",\n \"type\": \"V1GroupSubject\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"serviceAccount\",\n \"baseName\": \"serviceAccount\",\n \"type\": \"V1ServiceAccountSubject\",\n \"format\": \"\"\n },\n {\n \"name\": \"user\",\n \"baseName\": \"user\",\n \"type\": \"V1UserSubject\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=FlowcontrolV1Subject.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.\n*/\nexport class RbacV1Subject {\n static getAttributeTypeMap() {\n return RbacV1Subject.attributeTypeMap;\n }\n constructor() {\n }\n}\nRbacV1Subject.discriminator = undefined;\nRbacV1Subject.mapping = undefined;\nRbacV1Subject.attributeTypeMap = [\n {\n \"name\": \"apiGroup\",\n \"baseName\": \"apiGroup\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespace\",\n \"baseName\": \"namespace\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=RbacV1Subject.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* TokenRequest contains parameters of a service account token.\n*/\nexport class StorageV1TokenRequest {\n static getAttributeTypeMap() {\n return StorageV1TokenRequest.attributeTypeMap;\n }\n constructor() {\n }\n}\nStorageV1TokenRequest.discriminator = undefined;\nStorageV1TokenRequest.mapping = undefined;\nStorageV1TokenRequest.attributeTypeMap = [\n {\n \"name\": \"audience\",\n \"baseName\": \"audience\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"expirationSeconds\",\n \"baseName\": \"expirationSeconds\",\n \"type\": \"number\",\n \"format\": \"int64\"\n }\n];\n//# sourceMappingURL=StorageV1TokenRequest.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* APIGroup contains the name, the supported versions, and the preferred version of a group.\n*/\nexport class V1APIGroup {\n static getAttributeTypeMap() {\n return V1APIGroup.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1APIGroup.discriminator = undefined;\nV1APIGroup.mapping = undefined;\nV1APIGroup.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"preferredVersion\",\n \"baseName\": \"preferredVersion\",\n \"type\": \"V1GroupVersionForDiscovery\",\n \"format\": \"\"\n },\n {\n \"name\": \"serverAddressByClientCIDRs\",\n \"baseName\": \"serverAddressByClientCIDRs\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"versions\",\n \"baseName\": \"versions\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1APIGroup.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.\n*/\nexport class V1APIGroupList {\n static getAttributeTypeMap() {\n return V1APIGroupList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1APIGroupList.discriminator = undefined;\nV1APIGroupList.mapping = undefined;\nV1APIGroupList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"groups\",\n \"baseName\": \"groups\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1APIGroupList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* APIResource specifies the name of a resource and whether it is namespaced.\n*/\nexport class V1APIResource {\n static getAttributeTypeMap() {\n return V1APIResource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1APIResource.discriminator = undefined;\nV1APIResource.mapping = undefined;\nV1APIResource.attributeTypeMap = [\n {\n \"name\": \"categories\",\n \"baseName\": \"categories\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"group\",\n \"baseName\": \"group\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespaced\",\n \"baseName\": \"namespaced\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"shortNames\",\n \"baseName\": \"shortNames\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"singularName\",\n \"baseName\": \"singularName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"storageVersionHash\",\n \"baseName\": \"storageVersionHash\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"verbs\",\n \"baseName\": \"verbs\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"version\",\n \"baseName\": \"version\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1APIResource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.\n*/\nexport class V1APIResourceList {\n static getAttributeTypeMap() {\n return V1APIResourceList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1APIResourceList.discriminator = undefined;\nV1APIResourceList.mapping = undefined;\nV1APIResourceList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"groupVersion\",\n \"baseName\": \"groupVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resources\",\n \"baseName\": \"resources\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1APIResourceList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* APIService represents a server for a particular GroupVersion. Name must be \\\"version.group\\\".\n*/\nexport class V1APIService {\n static getAttributeTypeMap() {\n return V1APIService.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1APIService.discriminator = undefined;\nV1APIService.mapping = undefined;\nV1APIService.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1APIServiceSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1APIServiceStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1APIService.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* APIServiceCondition describes the state of an APIService at a particular point\n*/\nexport class V1APIServiceCondition {\n static getAttributeTypeMap() {\n return V1APIServiceCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1APIServiceCondition.discriminator = undefined;\nV1APIServiceCondition.mapping = undefined;\nV1APIServiceCondition.attributeTypeMap = [\n {\n \"name\": \"lastTransitionTime\",\n \"baseName\": \"lastTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1APIServiceCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* APIServiceList is a list of APIService objects.\n*/\nexport class V1APIServiceList {\n static getAttributeTypeMap() {\n return V1APIServiceList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1APIServiceList.discriminator = undefined;\nV1APIServiceList.mapping = undefined;\nV1APIServiceList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1APIServiceList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.\n*/\nexport class V1APIServiceSpec {\n static getAttributeTypeMap() {\n return V1APIServiceSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1APIServiceSpec.discriminator = undefined;\nV1APIServiceSpec.mapping = undefined;\nV1APIServiceSpec.attributeTypeMap = [\n {\n \"name\": \"caBundle\",\n \"baseName\": \"caBundle\",\n \"type\": \"string\",\n \"format\": \"byte\"\n },\n {\n \"name\": \"group\",\n \"baseName\": \"group\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"groupPriorityMinimum\",\n \"baseName\": \"groupPriorityMinimum\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"insecureSkipTLSVerify\",\n \"baseName\": \"insecureSkipTLSVerify\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"service\",\n \"baseName\": \"service\",\n \"type\": \"ApiregistrationV1ServiceReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"version\",\n \"baseName\": \"version\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"versionPriority\",\n \"baseName\": \"versionPriority\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1APIServiceSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* APIServiceStatus contains derived information about an API server\n*/\nexport class V1APIServiceStatus {\n static getAttributeTypeMap() {\n return V1APIServiceStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1APIServiceStatus.discriminator = undefined;\nV1APIServiceStatus.mapping = undefined;\nV1APIServiceStatus.attributeTypeMap = [\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1APIServiceStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.\n*/\nexport class V1APIVersions {\n static getAttributeTypeMap() {\n return V1APIVersions.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1APIVersions.discriminator = undefined;\nV1APIVersions.mapping = undefined;\nV1APIVersions.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"serverAddressByClientCIDRs\",\n \"baseName\": \"serverAddressByClientCIDRs\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"versions\",\n \"baseName\": \"versions\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1APIVersions.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a Persistent Disk resource in AWS. An AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.\n*/\nexport class V1AWSElasticBlockStoreVolumeSource {\n static getAttributeTypeMap() {\n return V1AWSElasticBlockStoreVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1AWSElasticBlockStoreVolumeSource.discriminator = undefined;\nV1AWSElasticBlockStoreVolumeSource.mapping = undefined;\nV1AWSElasticBlockStoreVolumeSource.attributeTypeMap = [\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"partition\",\n \"baseName\": \"partition\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeID\",\n \"baseName\": \"volumeID\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1AWSElasticBlockStoreVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Affinity is a group of affinity scheduling rules.\n*/\nexport class V1Affinity {\n static getAttributeTypeMap() {\n return V1Affinity.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Affinity.discriminator = undefined;\nV1Affinity.mapping = undefined;\nV1Affinity.attributeTypeMap = [\n {\n \"name\": \"nodeAffinity\",\n \"baseName\": \"nodeAffinity\",\n \"type\": \"V1NodeAffinity\",\n \"format\": \"\"\n },\n {\n \"name\": \"podAffinity\",\n \"baseName\": \"podAffinity\",\n \"type\": \"V1PodAffinity\",\n \"format\": \"\"\n },\n {\n \"name\": \"podAntiAffinity\",\n \"baseName\": \"podAntiAffinity\",\n \"type\": \"V1PodAntiAffinity\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Affinity.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\n*/\nexport class V1AggregationRule {\n static getAttributeTypeMap() {\n return V1AggregationRule.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1AggregationRule.discriminator = undefined;\nV1AggregationRule.mapping = undefined;\nV1AggregationRule.attributeTypeMap = [\n {\n \"name\": \"clusterRoleSelectors\",\n \"baseName\": \"clusterRoleSelectors\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1AggregationRule.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* AppArmorProfile defines a pod or container\\'s AppArmor settings.\n*/\nexport class V1AppArmorProfile {\n static getAttributeTypeMap() {\n return V1AppArmorProfile.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1AppArmorProfile.discriminator = undefined;\nV1AppArmorProfile.mapping = undefined;\nV1AppArmorProfile.attributeTypeMap = [\n {\n \"name\": \"localhostProfile\",\n \"baseName\": \"localhostProfile\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1AppArmorProfile.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* AttachedVolume describes a volume attached to a node\n*/\nexport class V1AttachedVolume {\n static getAttributeTypeMap() {\n return V1AttachedVolume.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1AttachedVolume.discriminator = undefined;\nV1AttachedVolume.mapping = undefined;\nV1AttachedVolume.attributeTypeMap = [\n {\n \"name\": \"devicePath\",\n \"baseName\": \"devicePath\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1AttachedVolume.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* AuditAnnotation describes how to produce an audit annotation for an API request.\n*/\nexport class V1AuditAnnotation {\n static getAttributeTypeMap() {\n return V1AuditAnnotation.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1AuditAnnotation.discriminator = undefined;\nV1AuditAnnotation.mapping = undefined;\nV1AuditAnnotation.attributeTypeMap = [\n {\n \"name\": \"key\",\n \"baseName\": \"key\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"valueExpression\",\n \"baseName\": \"valueExpression\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1AuditAnnotation.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\n*/\nexport class V1AzureDiskVolumeSource {\n static getAttributeTypeMap() {\n return V1AzureDiskVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1AzureDiskVolumeSource.discriminator = undefined;\nV1AzureDiskVolumeSource.mapping = undefined;\nV1AzureDiskVolumeSource.attributeTypeMap = [\n {\n \"name\": \"cachingMode\",\n \"baseName\": \"cachingMode\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"diskName\",\n \"baseName\": \"diskName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"diskURI\",\n \"baseName\": \"diskURI\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1AzureDiskVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\n*/\nexport class V1AzureFilePersistentVolumeSource {\n static getAttributeTypeMap() {\n return V1AzureFilePersistentVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1AzureFilePersistentVolumeSource.discriminator = undefined;\nV1AzureFilePersistentVolumeSource.mapping = undefined;\nV1AzureFilePersistentVolumeSource.attributeTypeMap = [\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretName\",\n \"baseName\": \"secretName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretNamespace\",\n \"baseName\": \"secretNamespace\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"shareName\",\n \"baseName\": \"shareName\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1AzureFilePersistentVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\n*/\nexport class V1AzureFileVolumeSource {\n static getAttributeTypeMap() {\n return V1AzureFileVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1AzureFileVolumeSource.discriminator = undefined;\nV1AzureFileVolumeSource.mapping = undefined;\nV1AzureFileVolumeSource.attributeTypeMap = [\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretName\",\n \"baseName\": \"secretName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"shareName\",\n \"baseName\": \"shareName\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1AzureFileVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Binding ties one object to another; for example, a pod is bound to a node by a scheduler.\n*/\nexport class V1Binding {\n static getAttributeTypeMap() {\n return V1Binding.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Binding.discriminator = undefined;\nV1Binding.mapping = undefined;\nV1Binding.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"target\",\n \"baseName\": \"target\",\n \"type\": \"V1ObjectReference\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Binding.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* BoundObjectReference is a reference to an object that a token is bound to.\n*/\nexport class V1BoundObjectReference {\n static getAttributeTypeMap() {\n return V1BoundObjectReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1BoundObjectReference.discriminator = undefined;\nV1BoundObjectReference.mapping = undefined;\nV1BoundObjectReference.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"uid\",\n \"baseName\": \"uid\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1BoundObjectReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.\n*/\nexport class V1CSIDriver {\n static getAttributeTypeMap() {\n return V1CSIDriver.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CSIDriver.discriminator = undefined;\nV1CSIDriver.mapping = undefined;\nV1CSIDriver.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1CSIDriverSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CSIDriver.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CSIDriverList is a collection of CSIDriver objects.\n*/\nexport class V1CSIDriverList {\n static getAttributeTypeMap() {\n return V1CSIDriverList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CSIDriverList.discriminator = undefined;\nV1CSIDriverList.mapping = undefined;\nV1CSIDriverList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CSIDriverList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CSIDriverSpec is the specification of a CSIDriver.\n*/\nexport class V1CSIDriverSpec {\n static getAttributeTypeMap() {\n return V1CSIDriverSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CSIDriverSpec.discriminator = undefined;\nV1CSIDriverSpec.mapping = undefined;\nV1CSIDriverSpec.attributeTypeMap = [\n {\n \"name\": \"attachRequired\",\n \"baseName\": \"attachRequired\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"fsGroupPolicy\",\n \"baseName\": \"fsGroupPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeAllocatableUpdatePeriodSeconds\",\n \"baseName\": \"nodeAllocatableUpdatePeriodSeconds\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"podInfoOnMount\",\n \"baseName\": \"podInfoOnMount\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"requiresRepublish\",\n \"baseName\": \"requiresRepublish\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"seLinuxMount\",\n \"baseName\": \"seLinuxMount\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"storageCapacity\",\n \"baseName\": \"storageCapacity\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"tokenRequests\",\n \"baseName\": \"tokenRequests\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeLifecycleModes\",\n \"baseName\": \"volumeLifecycleModes\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CSIDriverSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn\\'t create this object. CSINode has an OwnerReference that points to the corresponding node object.\n*/\nexport class V1CSINode {\n static getAttributeTypeMap() {\n return V1CSINode.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CSINode.discriminator = undefined;\nV1CSINode.mapping = undefined;\nV1CSINode.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1CSINodeSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CSINode.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CSINodeDriver holds information about the specification of one CSI driver installed on a node\n*/\nexport class V1CSINodeDriver {\n static getAttributeTypeMap() {\n return V1CSINodeDriver.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CSINodeDriver.discriminator = undefined;\nV1CSINodeDriver.mapping = undefined;\nV1CSINodeDriver.attributeTypeMap = [\n {\n \"name\": \"allocatable\",\n \"baseName\": \"allocatable\",\n \"type\": \"V1VolumeNodeResources\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeID\",\n \"baseName\": \"nodeID\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"topologyKeys\",\n \"baseName\": \"topologyKeys\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CSINodeDriver.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CSINodeList is a collection of CSINode objects.\n*/\nexport class V1CSINodeList {\n static getAttributeTypeMap() {\n return V1CSINodeList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CSINodeList.discriminator = undefined;\nV1CSINodeList.mapping = undefined;\nV1CSINodeList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CSINodeList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CSINodeSpec holds information about the specification of all CSI drivers installed on a node\n*/\nexport class V1CSINodeSpec {\n static getAttributeTypeMap() {\n return V1CSINodeSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CSINodeSpec.discriminator = undefined;\nV1CSINodeSpec.mapping = undefined;\nV1CSINodeSpec.attributeTypeMap = [\n {\n \"name\": \"drivers\",\n \"baseName\": \"drivers\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CSINodeSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents storage that is managed by an external CSI volume driver\n*/\nexport class V1CSIPersistentVolumeSource {\n static getAttributeTypeMap() {\n return V1CSIPersistentVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CSIPersistentVolumeSource.discriminator = undefined;\nV1CSIPersistentVolumeSource.mapping = undefined;\nV1CSIPersistentVolumeSource.attributeTypeMap = [\n {\n \"name\": \"controllerExpandSecretRef\",\n \"baseName\": \"controllerExpandSecretRef\",\n \"type\": \"V1SecretReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"controllerPublishSecretRef\",\n \"baseName\": \"controllerPublishSecretRef\",\n \"type\": \"V1SecretReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"driver\",\n \"baseName\": \"driver\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeExpandSecretRef\",\n \"baseName\": \"nodeExpandSecretRef\",\n \"type\": \"V1SecretReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodePublishSecretRef\",\n \"baseName\": \"nodePublishSecretRef\",\n \"type\": \"V1SecretReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeStageSecretRef\",\n \"baseName\": \"nodeStageSecretRef\",\n \"type\": \"V1SecretReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeAttributes\",\n \"baseName\": \"volumeAttributes\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeHandle\",\n \"baseName\": \"volumeHandle\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CSIPersistentVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CSIStorageCapacity stores the result of one CSI GetCapacity call. For a given StorageClass, this describes the available capacity in a particular topology segment. This can be used when considering where to instantiate new PersistentVolumes. For example this can express things like: - StorageClass \\\"standard\\\" has \\\"1234 GiB\\\" available in \\\"topology.kubernetes.io/zone=us-east1\\\" - StorageClass \\\"localssd\\\" has \\\"10 GiB\\\" available in \\\"kubernetes.io/hostname=knode-abc123\\\" The following three cases all imply that no capacity is available for a certain combination: - no object exists with suitable topology and storage class name - such an object exists, but the capacity is unset - such an object exists, but the capacity is zero The producer of these objects can decide which approach is more suitable. They are consumed by the kube-scheduler when a CSI driver opts into capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler compares the MaximumVolumeSize against the requested size of pending volumes to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back to a comparison against the less precise Capacity. If that is also unset, the scheduler assumes that capacity is insufficient and tries some other node.\n*/\nexport class V1CSIStorageCapacity {\n static getAttributeTypeMap() {\n return V1CSIStorageCapacity.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CSIStorageCapacity.discriminator = undefined;\nV1CSIStorageCapacity.mapping = undefined;\nV1CSIStorageCapacity.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"capacity\",\n \"baseName\": \"capacity\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"maximumVolumeSize\",\n \"baseName\": \"maximumVolumeSize\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeTopology\",\n \"baseName\": \"nodeTopology\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"storageClassName\",\n \"baseName\": \"storageClassName\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CSIStorageCapacity.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\n*/\nexport class V1CSIStorageCapacityList {\n static getAttributeTypeMap() {\n return V1CSIStorageCapacityList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CSIStorageCapacityList.discriminator = undefined;\nV1CSIStorageCapacityList.mapping = undefined;\nV1CSIStorageCapacityList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CSIStorageCapacityList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a source location of a volume to mount, managed by an external CSI driver\n*/\nexport class V1CSIVolumeSource {\n static getAttributeTypeMap() {\n return V1CSIVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CSIVolumeSource.discriminator = undefined;\nV1CSIVolumeSource.mapping = undefined;\nV1CSIVolumeSource.attributeTypeMap = [\n {\n \"name\": \"driver\",\n \"baseName\": \"driver\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodePublishSecretRef\",\n \"baseName\": \"nodePublishSecretRef\",\n \"type\": \"V1LocalObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeAttributes\",\n \"baseName\": \"volumeAttributes\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CSIVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Adds and removes POSIX capabilities from running containers.\n*/\nexport class V1Capabilities {\n static getAttributeTypeMap() {\n return V1Capabilities.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Capabilities.discriminator = undefined;\nV1Capabilities.mapping = undefined;\nV1Capabilities.attributeTypeMap = [\n {\n \"name\": \"add\",\n \"baseName\": \"add\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"drop\",\n \"baseName\": \"drop\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Capabilities.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.\n*/\nexport class V1CephFSPersistentVolumeSource {\n static getAttributeTypeMap() {\n return V1CephFSPersistentVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CephFSPersistentVolumeSource.discriminator = undefined;\nV1CephFSPersistentVolumeSource.mapping = undefined;\nV1CephFSPersistentVolumeSource.attributeTypeMap = [\n {\n \"name\": \"monitors\",\n \"baseName\": \"monitors\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"path\",\n \"baseName\": \"path\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretFile\",\n \"baseName\": \"secretFile\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretRef\",\n \"baseName\": \"secretRef\",\n \"type\": \"V1SecretReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"user\",\n \"baseName\": \"user\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CephFSPersistentVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.\n*/\nexport class V1CephFSVolumeSource {\n static getAttributeTypeMap() {\n return V1CephFSVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CephFSVolumeSource.discriminator = undefined;\nV1CephFSVolumeSource.mapping = undefined;\nV1CephFSVolumeSource.attributeTypeMap = [\n {\n \"name\": \"monitors\",\n \"baseName\": \"monitors\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"path\",\n \"baseName\": \"path\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretFile\",\n \"baseName\": \"secretFile\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretRef\",\n \"baseName\": \"secretRef\",\n \"type\": \"V1LocalObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"user\",\n \"baseName\": \"user\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CephFSVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CertificateSigningRequest objects provide a mechanism to obtain x509 certificates by submitting a certificate signing request, and having it asynchronously approved and issued. Kubelets use this API to obtain: 1. client certificates to authenticate to kube-apiserver (with the \\\"kubernetes.io/kube-apiserver-client-kubelet\\\" signerName). 2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the \\\"kubernetes.io/kubelet-serving\\\" signerName). This API can be used to request client certificates to authenticate to kube-apiserver (with the \\\"kubernetes.io/kube-apiserver-client\\\" signerName), or to obtain certificates from custom non-Kubernetes signers.\n*/\nexport class V1CertificateSigningRequest {\n static getAttributeTypeMap() {\n return V1CertificateSigningRequest.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CertificateSigningRequest.discriminator = undefined;\nV1CertificateSigningRequest.mapping = undefined;\nV1CertificateSigningRequest.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1CertificateSigningRequestSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1CertificateSigningRequestStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CertificateSigningRequest.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object\n*/\nexport class V1CertificateSigningRequestCondition {\n static getAttributeTypeMap() {\n return V1CertificateSigningRequestCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CertificateSigningRequestCondition.discriminator = undefined;\nV1CertificateSigningRequestCondition.mapping = undefined;\nV1CertificateSigningRequestCondition.attributeTypeMap = [\n {\n \"name\": \"lastTransitionTime\",\n \"baseName\": \"lastTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"lastUpdateTime\",\n \"baseName\": \"lastUpdateTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CertificateSigningRequestCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CertificateSigningRequestList is a collection of CertificateSigningRequest objects\n*/\nexport class V1CertificateSigningRequestList {\n static getAttributeTypeMap() {\n return V1CertificateSigningRequestList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CertificateSigningRequestList.discriminator = undefined;\nV1CertificateSigningRequestList.mapping = undefined;\nV1CertificateSigningRequestList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CertificateSigningRequestList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CertificateSigningRequestSpec contains the certificate request.\n*/\nexport class V1CertificateSigningRequestSpec {\n static getAttributeTypeMap() {\n return V1CertificateSigningRequestSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CertificateSigningRequestSpec.discriminator = undefined;\nV1CertificateSigningRequestSpec.mapping = undefined;\nV1CertificateSigningRequestSpec.attributeTypeMap = [\n {\n \"name\": \"expirationSeconds\",\n \"baseName\": \"expirationSeconds\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"extra\",\n \"baseName\": \"extra\",\n \"type\": \"{ [key: string]: Array; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"groups\",\n \"baseName\": \"groups\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"request\",\n \"baseName\": \"request\",\n \"type\": \"string\",\n \"format\": \"byte\"\n },\n {\n \"name\": \"signerName\",\n \"baseName\": \"signerName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"uid\",\n \"baseName\": \"uid\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"usages\",\n \"baseName\": \"usages\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"username\",\n \"baseName\": \"username\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CertificateSigningRequestSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CertificateSigningRequestStatus contains conditions used to indicate approved/denied/failed status of the request, and the issued certificate.\n*/\nexport class V1CertificateSigningRequestStatus {\n static getAttributeTypeMap() {\n return V1CertificateSigningRequestStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CertificateSigningRequestStatus.discriminator = undefined;\nV1CertificateSigningRequestStatus.mapping = undefined;\nV1CertificateSigningRequestStatus.attributeTypeMap = [\n {\n \"name\": \"certificate\",\n \"baseName\": \"certificate\",\n \"type\": \"string\",\n \"format\": \"byte\"\n },\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CertificateSigningRequestStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.\n*/\nexport class V1CinderPersistentVolumeSource {\n static getAttributeTypeMap() {\n return V1CinderPersistentVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CinderPersistentVolumeSource.discriminator = undefined;\nV1CinderPersistentVolumeSource.mapping = undefined;\nV1CinderPersistentVolumeSource.attributeTypeMap = [\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretRef\",\n \"baseName\": \"secretRef\",\n \"type\": \"V1SecretReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeID\",\n \"baseName\": \"volumeID\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CinderPersistentVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.\n*/\nexport class V1CinderVolumeSource {\n static getAttributeTypeMap() {\n return V1CinderVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CinderVolumeSource.discriminator = undefined;\nV1CinderVolumeSource.mapping = undefined;\nV1CinderVolumeSource.attributeTypeMap = [\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretRef\",\n \"baseName\": \"secretRef\",\n \"type\": \"V1LocalObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeID\",\n \"baseName\": \"volumeID\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CinderVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ClientIPConfig represents the configurations of Client IP based session affinity.\n*/\nexport class V1ClientIPConfig {\n static getAttributeTypeMap() {\n return V1ClientIPConfig.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ClientIPConfig.discriminator = undefined;\nV1ClientIPConfig.mapping = undefined;\nV1ClientIPConfig.attributeTypeMap = [\n {\n \"name\": \"timeoutSeconds\",\n \"baseName\": \"timeoutSeconds\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1ClientIPConfig.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.\n*/\nexport class V1ClusterRole {\n static getAttributeTypeMap() {\n return V1ClusterRole.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ClusterRole.discriminator = undefined;\nV1ClusterRole.mapping = undefined;\nV1ClusterRole.attributeTypeMap = [\n {\n \"name\": \"aggregationRule\",\n \"baseName\": \"aggregationRule\",\n \"type\": \"V1AggregationRule\",\n \"format\": \"\"\n },\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"rules\",\n \"baseName\": \"rules\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ClusterRole.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.\n*/\nexport class V1ClusterRoleBinding {\n static getAttributeTypeMap() {\n return V1ClusterRoleBinding.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ClusterRoleBinding.discriminator = undefined;\nV1ClusterRoleBinding.mapping = undefined;\nV1ClusterRoleBinding.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"roleRef\",\n \"baseName\": \"roleRef\",\n \"type\": \"V1RoleRef\",\n \"format\": \"\"\n },\n {\n \"name\": \"subjects\",\n \"baseName\": \"subjects\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ClusterRoleBinding.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ClusterRoleBindingList is a collection of ClusterRoleBindings\n*/\nexport class V1ClusterRoleBindingList {\n static getAttributeTypeMap() {\n return V1ClusterRoleBindingList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ClusterRoleBindingList.discriminator = undefined;\nV1ClusterRoleBindingList.mapping = undefined;\nV1ClusterRoleBindingList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ClusterRoleBindingList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ClusterRoleList is a collection of ClusterRoles\n*/\nexport class V1ClusterRoleList {\n static getAttributeTypeMap() {\n return V1ClusterRoleList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ClusterRoleList.discriminator = undefined;\nV1ClusterRoleList.mapping = undefined;\nV1ClusterRoleList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ClusterRoleList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ClusterTrustBundleProjection describes how to select a set of ClusterTrustBundle objects and project their contents into the pod filesystem.\n*/\nexport class V1ClusterTrustBundleProjection {\n static getAttributeTypeMap() {\n return V1ClusterTrustBundleProjection.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ClusterTrustBundleProjection.discriminator = undefined;\nV1ClusterTrustBundleProjection.mapping = undefined;\nV1ClusterTrustBundleProjection.attributeTypeMap = [\n {\n \"name\": \"labelSelector\",\n \"baseName\": \"labelSelector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"optional\",\n \"baseName\": \"optional\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"path\",\n \"baseName\": \"path\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"signerName\",\n \"baseName\": \"signerName\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ClusterTrustBundleProjection.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Information about the condition of a component.\n*/\nexport class V1ComponentCondition {\n static getAttributeTypeMap() {\n return V1ComponentCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ComponentCondition.discriminator = undefined;\nV1ComponentCondition.mapping = undefined;\nV1ComponentCondition.attributeTypeMap = [\n {\n \"name\": \"error\",\n \"baseName\": \"error\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ComponentCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+\n*/\nexport class V1ComponentStatus {\n static getAttributeTypeMap() {\n return V1ComponentStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ComponentStatus.discriminator = undefined;\nV1ComponentStatus.mapping = undefined;\nV1ComponentStatus.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ComponentStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Status of all the conditions for the component as a list of ComponentStatus objects. Deprecated: This API is deprecated in v1.19+\n*/\nexport class V1ComponentStatusList {\n static getAttributeTypeMap() {\n return V1ComponentStatusList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ComponentStatusList.discriminator = undefined;\nV1ComponentStatusList.mapping = undefined;\nV1ComponentStatusList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ComponentStatusList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Condition contains details for one aspect of the current state of this API Resource.\n*/\nexport class V1Condition {\n static getAttributeTypeMap() {\n return V1Condition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Condition.discriminator = undefined;\nV1Condition.mapping = undefined;\nV1Condition.attributeTypeMap = [\n {\n \"name\": \"lastTransitionTime\",\n \"baseName\": \"lastTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"observedGeneration\",\n \"baseName\": \"observedGeneration\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Condition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ConfigMap holds configuration data for pods to consume.\n*/\nexport class V1ConfigMap {\n static getAttributeTypeMap() {\n return V1ConfigMap.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ConfigMap.discriminator = undefined;\nV1ConfigMap.mapping = undefined;\nV1ConfigMap.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"binaryData\",\n \"baseName\": \"binaryData\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"byte\"\n },\n {\n \"name\": \"data\",\n \"baseName\": \"data\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"immutable\",\n \"baseName\": \"immutable\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ConfigMap.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ConfigMapEnvSource selects a ConfigMap to populate the environment variables with. The contents of the target ConfigMap\\'s Data field will represent the key-value pairs as environment variables.\n*/\nexport class V1ConfigMapEnvSource {\n static getAttributeTypeMap() {\n return V1ConfigMapEnvSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ConfigMapEnvSource.discriminator = undefined;\nV1ConfigMapEnvSource.mapping = undefined;\nV1ConfigMapEnvSource.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"optional\",\n \"baseName\": \"optional\",\n \"type\": \"boolean\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ConfigMapEnvSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Selects a key from a ConfigMap.\n*/\nexport class V1ConfigMapKeySelector {\n static getAttributeTypeMap() {\n return V1ConfigMapKeySelector.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ConfigMapKeySelector.discriminator = undefined;\nV1ConfigMapKeySelector.mapping = undefined;\nV1ConfigMapKeySelector.attributeTypeMap = [\n {\n \"name\": \"key\",\n \"baseName\": \"key\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"optional\",\n \"baseName\": \"optional\",\n \"type\": \"boolean\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ConfigMapKeySelector.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ConfigMapList is a resource containing a list of ConfigMap objects.\n*/\nexport class V1ConfigMapList {\n static getAttributeTypeMap() {\n return V1ConfigMapList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ConfigMapList.discriminator = undefined;\nV1ConfigMapList.mapping = undefined;\nV1ConfigMapList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ConfigMapList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node. This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration\n*/\nexport class V1ConfigMapNodeConfigSource {\n static getAttributeTypeMap() {\n return V1ConfigMapNodeConfigSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ConfigMapNodeConfigSource.discriminator = undefined;\nV1ConfigMapNodeConfigSource.mapping = undefined;\nV1ConfigMapNodeConfigSource.attributeTypeMap = [\n {\n \"name\": \"kubeletConfigKey\",\n \"baseName\": \"kubeletConfigKey\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespace\",\n \"baseName\": \"namespace\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceVersion\",\n \"baseName\": \"resourceVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"uid\",\n \"baseName\": \"uid\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ConfigMapNodeConfigSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Adapts a ConfigMap into a projected volume. The contents of the target ConfigMap\\'s Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.\n*/\nexport class V1ConfigMapProjection {\n static getAttributeTypeMap() {\n return V1ConfigMapProjection.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ConfigMapProjection.discriminator = undefined;\nV1ConfigMapProjection.mapping = undefined;\nV1ConfigMapProjection.attributeTypeMap = [\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"optional\",\n \"baseName\": \"optional\",\n \"type\": \"boolean\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ConfigMapProjection.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Adapts a ConfigMap into a volume. The contents of the target ConfigMap\\'s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.\n*/\nexport class V1ConfigMapVolumeSource {\n static getAttributeTypeMap() {\n return V1ConfigMapVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ConfigMapVolumeSource.discriminator = undefined;\nV1ConfigMapVolumeSource.mapping = undefined;\nV1ConfigMapVolumeSource.attributeTypeMap = [\n {\n \"name\": \"defaultMode\",\n \"baseName\": \"defaultMode\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"optional\",\n \"baseName\": \"optional\",\n \"type\": \"boolean\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ConfigMapVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* A single application container that you want to run within a pod.\n*/\nexport class V1Container {\n static getAttributeTypeMap() {\n return V1Container.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Container.discriminator = undefined;\nV1Container.mapping = undefined;\nV1Container.attributeTypeMap = [\n {\n \"name\": \"args\",\n \"baseName\": \"args\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"command\",\n \"baseName\": \"command\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"env\",\n \"baseName\": \"env\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"envFrom\",\n \"baseName\": \"envFrom\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"image\",\n \"baseName\": \"image\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"imagePullPolicy\",\n \"baseName\": \"imagePullPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"lifecycle\",\n \"baseName\": \"lifecycle\",\n \"type\": \"V1Lifecycle\",\n \"format\": \"\"\n },\n {\n \"name\": \"livenessProbe\",\n \"baseName\": \"livenessProbe\",\n \"type\": \"V1Probe\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"ports\",\n \"baseName\": \"ports\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"readinessProbe\",\n \"baseName\": \"readinessProbe\",\n \"type\": \"V1Probe\",\n \"format\": \"\"\n },\n {\n \"name\": \"resizePolicy\",\n \"baseName\": \"resizePolicy\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resources\",\n \"baseName\": \"resources\",\n \"type\": \"V1ResourceRequirements\",\n \"format\": \"\"\n },\n {\n \"name\": \"restartPolicy\",\n \"baseName\": \"restartPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"securityContext\",\n \"baseName\": \"securityContext\",\n \"type\": \"V1SecurityContext\",\n \"format\": \"\"\n },\n {\n \"name\": \"startupProbe\",\n \"baseName\": \"startupProbe\",\n \"type\": \"V1Probe\",\n \"format\": \"\"\n },\n {\n \"name\": \"stdin\",\n \"baseName\": \"stdin\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"stdinOnce\",\n \"baseName\": \"stdinOnce\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"terminationMessagePath\",\n \"baseName\": \"terminationMessagePath\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"terminationMessagePolicy\",\n \"baseName\": \"terminationMessagePolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"tty\",\n \"baseName\": \"tty\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeDevices\",\n \"baseName\": \"volumeDevices\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeMounts\",\n \"baseName\": \"volumeMounts\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"workingDir\",\n \"baseName\": \"workingDir\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Container.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Describe a container image\n*/\nexport class V1ContainerImage {\n static getAttributeTypeMap() {\n return V1ContainerImage.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ContainerImage.discriminator = undefined;\nV1ContainerImage.mapping = undefined;\nV1ContainerImage.attributeTypeMap = [\n {\n \"name\": \"names\",\n \"baseName\": \"names\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"sizeBytes\",\n \"baseName\": \"sizeBytes\",\n \"type\": \"number\",\n \"format\": \"int64\"\n }\n];\n//# sourceMappingURL=V1ContainerImage.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ContainerPort represents a network port in a single container.\n*/\nexport class V1ContainerPort {\n static getAttributeTypeMap() {\n return V1ContainerPort.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ContainerPort.discriminator = undefined;\nV1ContainerPort.mapping = undefined;\nV1ContainerPort.attributeTypeMap = [\n {\n \"name\": \"containerPort\",\n \"baseName\": \"containerPort\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"hostIP\",\n \"baseName\": \"hostIP\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"hostPort\",\n \"baseName\": \"hostPort\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"protocol\",\n \"baseName\": \"protocol\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ContainerPort.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ContainerResizePolicy represents resource resize policy for the container.\n*/\nexport class V1ContainerResizePolicy {\n static getAttributeTypeMap() {\n return V1ContainerResizePolicy.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ContainerResizePolicy.discriminator = undefined;\nV1ContainerResizePolicy.mapping = undefined;\nV1ContainerResizePolicy.attributeTypeMap = [\n {\n \"name\": \"resourceName\",\n \"baseName\": \"resourceName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"restartPolicy\",\n \"baseName\": \"restartPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ContainerResizePolicy.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting.\n*/\nexport class V1ContainerState {\n static getAttributeTypeMap() {\n return V1ContainerState.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ContainerState.discriminator = undefined;\nV1ContainerState.mapping = undefined;\nV1ContainerState.attributeTypeMap = [\n {\n \"name\": \"running\",\n \"baseName\": \"running\",\n \"type\": \"V1ContainerStateRunning\",\n \"format\": \"\"\n },\n {\n \"name\": \"terminated\",\n \"baseName\": \"terminated\",\n \"type\": \"V1ContainerStateTerminated\",\n \"format\": \"\"\n },\n {\n \"name\": \"waiting\",\n \"baseName\": \"waiting\",\n \"type\": \"V1ContainerStateWaiting\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ContainerState.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ContainerStateRunning is a running state of a container.\n*/\nexport class V1ContainerStateRunning {\n static getAttributeTypeMap() {\n return V1ContainerStateRunning.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ContainerStateRunning.discriminator = undefined;\nV1ContainerStateRunning.mapping = undefined;\nV1ContainerStateRunning.attributeTypeMap = [\n {\n \"name\": \"startedAt\",\n \"baseName\": \"startedAt\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n }\n];\n//# sourceMappingURL=V1ContainerStateRunning.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ContainerStateTerminated is a terminated state of a container.\n*/\nexport class V1ContainerStateTerminated {\n static getAttributeTypeMap() {\n return V1ContainerStateTerminated.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ContainerStateTerminated.discriminator = undefined;\nV1ContainerStateTerminated.mapping = undefined;\nV1ContainerStateTerminated.attributeTypeMap = [\n {\n \"name\": \"containerID\",\n \"baseName\": \"containerID\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"exitCode\",\n \"baseName\": \"exitCode\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"finishedAt\",\n \"baseName\": \"finishedAt\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"signal\",\n \"baseName\": \"signal\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"startedAt\",\n \"baseName\": \"startedAt\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n }\n];\n//# sourceMappingURL=V1ContainerStateTerminated.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ContainerStateWaiting is a waiting state of a container.\n*/\nexport class V1ContainerStateWaiting {\n static getAttributeTypeMap() {\n return V1ContainerStateWaiting.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ContainerStateWaiting.discriminator = undefined;\nV1ContainerStateWaiting.mapping = undefined;\nV1ContainerStateWaiting.attributeTypeMap = [\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ContainerStateWaiting.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ContainerStatus contains details for the current status of this container.\n*/\nexport class V1ContainerStatus {\n static getAttributeTypeMap() {\n return V1ContainerStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ContainerStatus.discriminator = undefined;\nV1ContainerStatus.mapping = undefined;\nV1ContainerStatus.attributeTypeMap = [\n {\n \"name\": \"allocatedResources\",\n \"baseName\": \"allocatedResources\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"allocatedResourcesStatus\",\n \"baseName\": \"allocatedResourcesStatus\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"containerID\",\n \"baseName\": \"containerID\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"image\",\n \"baseName\": \"image\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"imageID\",\n \"baseName\": \"imageID\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"lastState\",\n \"baseName\": \"lastState\",\n \"type\": \"V1ContainerState\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"ready\",\n \"baseName\": \"ready\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"resources\",\n \"baseName\": \"resources\",\n \"type\": \"V1ResourceRequirements\",\n \"format\": \"\"\n },\n {\n \"name\": \"restartCount\",\n \"baseName\": \"restartCount\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"started\",\n \"baseName\": \"started\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"state\",\n \"baseName\": \"state\",\n \"type\": \"V1ContainerState\",\n \"format\": \"\"\n },\n {\n \"name\": \"stopSignal\",\n \"baseName\": \"stopSignal\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"user\",\n \"baseName\": \"user\",\n \"type\": \"V1ContainerUser\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeMounts\",\n \"baseName\": \"volumeMounts\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ContainerStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ContainerUser represents user identity information\n*/\nexport class V1ContainerUser {\n static getAttributeTypeMap() {\n return V1ContainerUser.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ContainerUser.discriminator = undefined;\nV1ContainerUser.mapping = undefined;\nV1ContainerUser.attributeTypeMap = [\n {\n \"name\": \"linux\",\n \"baseName\": \"linux\",\n \"type\": \"V1LinuxContainerUser\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ContainerUser.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.\n*/\nexport class V1ControllerRevision {\n static getAttributeTypeMap() {\n return V1ControllerRevision.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ControllerRevision.discriminator = undefined;\nV1ControllerRevision.mapping = undefined;\nV1ControllerRevision.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"data\",\n \"baseName\": \"data\",\n \"type\": \"any\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"revision\",\n \"baseName\": \"revision\",\n \"type\": \"number\",\n \"format\": \"int64\"\n }\n];\n//# sourceMappingURL=V1ControllerRevision.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ControllerRevisionList is a resource containing a list of ControllerRevision objects.\n*/\nexport class V1ControllerRevisionList {\n static getAttributeTypeMap() {\n return V1ControllerRevisionList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ControllerRevisionList.discriminator = undefined;\nV1ControllerRevisionList.mapping = undefined;\nV1ControllerRevisionList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ControllerRevisionList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CronJob represents the configuration of a single cron job.\n*/\nexport class V1CronJob {\n static getAttributeTypeMap() {\n return V1CronJob.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CronJob.discriminator = undefined;\nV1CronJob.mapping = undefined;\nV1CronJob.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1CronJobSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1CronJobStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CronJob.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CronJobList is a collection of cron jobs.\n*/\nexport class V1CronJobList {\n static getAttributeTypeMap() {\n return V1CronJobList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CronJobList.discriminator = undefined;\nV1CronJobList.mapping = undefined;\nV1CronJobList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CronJobList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CronJobSpec describes how the job execution will look like and when it will actually run.\n*/\nexport class V1CronJobSpec {\n static getAttributeTypeMap() {\n return V1CronJobSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CronJobSpec.discriminator = undefined;\nV1CronJobSpec.mapping = undefined;\nV1CronJobSpec.attributeTypeMap = [\n {\n \"name\": \"concurrencyPolicy\",\n \"baseName\": \"concurrencyPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"failedJobsHistoryLimit\",\n \"baseName\": \"failedJobsHistoryLimit\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"jobTemplate\",\n \"baseName\": \"jobTemplate\",\n \"type\": \"V1JobTemplateSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"schedule\",\n \"baseName\": \"schedule\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"startingDeadlineSeconds\",\n \"baseName\": \"startingDeadlineSeconds\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"successfulJobsHistoryLimit\",\n \"baseName\": \"successfulJobsHistoryLimit\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"suspend\",\n \"baseName\": \"suspend\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"timeZone\",\n \"baseName\": \"timeZone\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CronJobSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CronJobStatus represents the current state of a cron job.\n*/\nexport class V1CronJobStatus {\n static getAttributeTypeMap() {\n return V1CronJobStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CronJobStatus.discriminator = undefined;\nV1CronJobStatus.mapping = undefined;\nV1CronJobStatus.attributeTypeMap = [\n {\n \"name\": \"active\",\n \"baseName\": \"active\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"lastScheduleTime\",\n \"baseName\": \"lastScheduleTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"lastSuccessfulTime\",\n \"baseName\": \"lastSuccessfulTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n }\n];\n//# sourceMappingURL=V1CronJobStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CrossVersionObjectReference contains enough information to let you identify the referred resource.\n*/\nexport class V1CrossVersionObjectReference {\n static getAttributeTypeMap() {\n return V1CrossVersionObjectReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CrossVersionObjectReference.discriminator = undefined;\nV1CrossVersionObjectReference.mapping = undefined;\nV1CrossVersionObjectReference.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CrossVersionObjectReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CustomResourceColumnDefinition specifies a column for server side printing.\n*/\nexport class V1CustomResourceColumnDefinition {\n static getAttributeTypeMap() {\n return V1CustomResourceColumnDefinition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CustomResourceColumnDefinition.discriminator = undefined;\nV1CustomResourceColumnDefinition.mapping = undefined;\nV1CustomResourceColumnDefinition.attributeTypeMap = [\n {\n \"name\": \"description\",\n \"baseName\": \"description\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"format\",\n \"baseName\": \"format\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"jsonPath\",\n \"baseName\": \"jsonPath\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"priority\",\n \"baseName\": \"priority\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CustomResourceColumnDefinition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CustomResourceConversion describes how to convert different versions of a CR.\n*/\nexport class V1CustomResourceConversion {\n static getAttributeTypeMap() {\n return V1CustomResourceConversion.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CustomResourceConversion.discriminator = undefined;\nV1CustomResourceConversion.mapping = undefined;\nV1CustomResourceConversion.attributeTypeMap = [\n {\n \"name\": \"strategy\",\n \"baseName\": \"strategy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"webhook\",\n \"baseName\": \"webhook\",\n \"type\": \"V1WebhookConversion\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CustomResourceConversion.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format <.spec.name>.<.spec.group>.\n*/\nexport class V1CustomResourceDefinition {\n static getAttributeTypeMap() {\n return V1CustomResourceDefinition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CustomResourceDefinition.discriminator = undefined;\nV1CustomResourceDefinition.mapping = undefined;\nV1CustomResourceDefinition.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1CustomResourceDefinitionSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1CustomResourceDefinitionStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CustomResourceDefinition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CustomResourceDefinitionCondition contains details for the current condition of this pod.\n*/\nexport class V1CustomResourceDefinitionCondition {\n static getAttributeTypeMap() {\n return V1CustomResourceDefinitionCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CustomResourceDefinitionCondition.discriminator = undefined;\nV1CustomResourceDefinitionCondition.mapping = undefined;\nV1CustomResourceDefinitionCondition.attributeTypeMap = [\n {\n \"name\": \"lastTransitionTime\",\n \"baseName\": \"lastTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CustomResourceDefinitionCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CustomResourceDefinitionList is a list of CustomResourceDefinition objects.\n*/\nexport class V1CustomResourceDefinitionList {\n static getAttributeTypeMap() {\n return V1CustomResourceDefinitionList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CustomResourceDefinitionList.discriminator = undefined;\nV1CustomResourceDefinitionList.mapping = undefined;\nV1CustomResourceDefinitionList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CustomResourceDefinitionList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition\n*/\nexport class V1CustomResourceDefinitionNames {\n static getAttributeTypeMap() {\n return V1CustomResourceDefinitionNames.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CustomResourceDefinitionNames.discriminator = undefined;\nV1CustomResourceDefinitionNames.mapping = undefined;\nV1CustomResourceDefinitionNames.attributeTypeMap = [\n {\n \"name\": \"categories\",\n \"baseName\": \"categories\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"listKind\",\n \"baseName\": \"listKind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"plural\",\n \"baseName\": \"plural\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"shortNames\",\n \"baseName\": \"shortNames\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"singular\",\n \"baseName\": \"singular\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CustomResourceDefinitionNames.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CustomResourceDefinitionSpec describes how a user wants their resource to appear\n*/\nexport class V1CustomResourceDefinitionSpec {\n static getAttributeTypeMap() {\n return V1CustomResourceDefinitionSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CustomResourceDefinitionSpec.discriminator = undefined;\nV1CustomResourceDefinitionSpec.mapping = undefined;\nV1CustomResourceDefinitionSpec.attributeTypeMap = [\n {\n \"name\": \"conversion\",\n \"baseName\": \"conversion\",\n \"type\": \"V1CustomResourceConversion\",\n \"format\": \"\"\n },\n {\n \"name\": \"group\",\n \"baseName\": \"group\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"names\",\n \"baseName\": \"names\",\n \"type\": \"V1CustomResourceDefinitionNames\",\n \"format\": \"\"\n },\n {\n \"name\": \"preserveUnknownFields\",\n \"baseName\": \"preserveUnknownFields\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"scope\",\n \"baseName\": \"scope\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"versions\",\n \"baseName\": \"versions\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CustomResourceDefinitionSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition\n*/\nexport class V1CustomResourceDefinitionStatus {\n static getAttributeTypeMap() {\n return V1CustomResourceDefinitionStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CustomResourceDefinitionStatus.discriminator = undefined;\nV1CustomResourceDefinitionStatus.mapping = undefined;\nV1CustomResourceDefinitionStatus.attributeTypeMap = [\n {\n \"name\": \"acceptedNames\",\n \"baseName\": \"acceptedNames\",\n \"type\": \"V1CustomResourceDefinitionNames\",\n \"format\": \"\"\n },\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"storedVersions\",\n \"baseName\": \"storedVersions\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CustomResourceDefinitionStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CustomResourceDefinitionVersion describes a version for CRD.\n*/\nexport class V1CustomResourceDefinitionVersion {\n static getAttributeTypeMap() {\n return V1CustomResourceDefinitionVersion.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CustomResourceDefinitionVersion.discriminator = undefined;\nV1CustomResourceDefinitionVersion.mapping = undefined;\nV1CustomResourceDefinitionVersion.attributeTypeMap = [\n {\n \"name\": \"additionalPrinterColumns\",\n \"baseName\": \"additionalPrinterColumns\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"deprecated\",\n \"baseName\": \"deprecated\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"deprecationWarning\",\n \"baseName\": \"deprecationWarning\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"schema\",\n \"baseName\": \"schema\",\n \"type\": \"V1CustomResourceValidation\",\n \"format\": \"\"\n },\n {\n \"name\": \"selectableFields\",\n \"baseName\": \"selectableFields\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"served\",\n \"baseName\": \"served\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"storage\",\n \"baseName\": \"storage\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"subresources\",\n \"baseName\": \"subresources\",\n \"type\": \"V1CustomResourceSubresources\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CustomResourceDefinitionVersion.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.\n*/\nexport class V1CustomResourceSubresourceScale {\n static getAttributeTypeMap() {\n return V1CustomResourceSubresourceScale.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CustomResourceSubresourceScale.discriminator = undefined;\nV1CustomResourceSubresourceScale.mapping = undefined;\nV1CustomResourceSubresourceScale.attributeTypeMap = [\n {\n \"name\": \"labelSelectorPath\",\n \"baseName\": \"labelSelectorPath\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"specReplicasPath\",\n \"baseName\": \"specReplicasPath\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"statusReplicasPath\",\n \"baseName\": \"statusReplicasPath\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CustomResourceSubresourceScale.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CustomResourceSubresources defines the status and scale subresources for CustomResources.\n*/\nexport class V1CustomResourceSubresources {\n static getAttributeTypeMap() {\n return V1CustomResourceSubresources.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CustomResourceSubresources.discriminator = undefined;\nV1CustomResourceSubresources.mapping = undefined;\nV1CustomResourceSubresources.attributeTypeMap = [\n {\n \"name\": \"scale\",\n \"baseName\": \"scale\",\n \"type\": \"V1CustomResourceSubresourceScale\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"any\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CustomResourceSubresources.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CustomResourceValidation is a list of validation methods for CustomResources.\n*/\nexport class V1CustomResourceValidation {\n static getAttributeTypeMap() {\n return V1CustomResourceValidation.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1CustomResourceValidation.discriminator = undefined;\nV1CustomResourceValidation.mapping = undefined;\nV1CustomResourceValidation.attributeTypeMap = [\n {\n \"name\": \"openAPIV3Schema\",\n \"baseName\": \"openAPIV3Schema\",\n \"type\": \"V1JSONSchemaProps\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1CustomResourceValidation.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DaemonEndpoint contains information about a single Daemon endpoint.\n*/\nexport class V1DaemonEndpoint {\n static getAttributeTypeMap() {\n return V1DaemonEndpoint.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1DaemonEndpoint.discriminator = undefined;\nV1DaemonEndpoint.mapping = undefined;\nV1DaemonEndpoint.attributeTypeMap = [\n {\n \"name\": \"Port\",\n \"baseName\": \"Port\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1DaemonEndpoint.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DaemonSet represents the configuration of a daemon set.\n*/\nexport class V1DaemonSet {\n static getAttributeTypeMap() {\n return V1DaemonSet.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1DaemonSet.discriminator = undefined;\nV1DaemonSet.mapping = undefined;\nV1DaemonSet.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1DaemonSetSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1DaemonSetStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1DaemonSet.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DaemonSetCondition describes the state of a DaemonSet at a certain point.\n*/\nexport class V1DaemonSetCondition {\n static getAttributeTypeMap() {\n return V1DaemonSetCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1DaemonSetCondition.discriminator = undefined;\nV1DaemonSetCondition.mapping = undefined;\nV1DaemonSetCondition.attributeTypeMap = [\n {\n \"name\": \"lastTransitionTime\",\n \"baseName\": \"lastTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1DaemonSetCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DaemonSetList is a collection of daemon sets.\n*/\nexport class V1DaemonSetList {\n static getAttributeTypeMap() {\n return V1DaemonSetList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1DaemonSetList.discriminator = undefined;\nV1DaemonSetList.mapping = undefined;\nV1DaemonSetList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1DaemonSetList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DaemonSetSpec is the specification of a daemon set.\n*/\nexport class V1DaemonSetSpec {\n static getAttributeTypeMap() {\n return V1DaemonSetSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1DaemonSetSpec.discriminator = undefined;\nV1DaemonSetSpec.mapping = undefined;\nV1DaemonSetSpec.attributeTypeMap = [\n {\n \"name\": \"minReadySeconds\",\n \"baseName\": \"minReadySeconds\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"revisionHistoryLimit\",\n \"baseName\": \"revisionHistoryLimit\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"selector\",\n \"baseName\": \"selector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"template\",\n \"baseName\": \"template\",\n \"type\": \"V1PodTemplateSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"updateStrategy\",\n \"baseName\": \"updateStrategy\",\n \"type\": \"V1DaemonSetUpdateStrategy\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1DaemonSetSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DaemonSetStatus represents the current status of a daemon set.\n*/\nexport class V1DaemonSetStatus {\n static getAttributeTypeMap() {\n return V1DaemonSetStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1DaemonSetStatus.discriminator = undefined;\nV1DaemonSetStatus.mapping = undefined;\nV1DaemonSetStatus.attributeTypeMap = [\n {\n \"name\": \"collisionCount\",\n \"baseName\": \"collisionCount\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"currentNumberScheduled\",\n \"baseName\": \"currentNumberScheduled\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"desiredNumberScheduled\",\n \"baseName\": \"desiredNumberScheduled\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"numberAvailable\",\n \"baseName\": \"numberAvailable\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"numberMisscheduled\",\n \"baseName\": \"numberMisscheduled\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"numberReady\",\n \"baseName\": \"numberReady\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"numberUnavailable\",\n \"baseName\": \"numberUnavailable\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"observedGeneration\",\n \"baseName\": \"observedGeneration\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"updatedNumberScheduled\",\n \"baseName\": \"updatedNumberScheduled\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1DaemonSetStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\n*/\nexport class V1DaemonSetUpdateStrategy {\n static getAttributeTypeMap() {\n return V1DaemonSetUpdateStrategy.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1DaemonSetUpdateStrategy.discriminator = undefined;\nV1DaemonSetUpdateStrategy.mapping = undefined;\nV1DaemonSetUpdateStrategy.attributeTypeMap = [\n {\n \"name\": \"rollingUpdate\",\n \"baseName\": \"rollingUpdate\",\n \"type\": \"V1RollingUpdateDaemonSet\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1DaemonSetUpdateStrategy.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeleteOptions may be provided when deleting an API object.\n*/\nexport class V1DeleteOptions {\n static getAttributeTypeMap() {\n return V1DeleteOptions.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1DeleteOptions.discriminator = undefined;\nV1DeleteOptions.mapping = undefined;\nV1DeleteOptions.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"dryRun\",\n \"baseName\": \"dryRun\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"gracePeriodSeconds\",\n \"baseName\": \"gracePeriodSeconds\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"ignoreStoreReadErrorWithClusterBreakingPotential\",\n \"baseName\": \"ignoreStoreReadErrorWithClusterBreakingPotential\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"orphanDependents\",\n \"baseName\": \"orphanDependents\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"preconditions\",\n \"baseName\": \"preconditions\",\n \"type\": \"V1Preconditions\",\n \"format\": \"\"\n },\n {\n \"name\": \"propagationPolicy\",\n \"baseName\": \"propagationPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1DeleteOptions.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Deployment enables declarative updates for Pods and ReplicaSets.\n*/\nexport class V1Deployment {\n static getAttributeTypeMap() {\n return V1Deployment.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Deployment.discriminator = undefined;\nV1Deployment.mapping = undefined;\nV1Deployment.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1DeploymentSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1DeploymentStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Deployment.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeploymentCondition describes the state of a deployment at a certain point.\n*/\nexport class V1DeploymentCondition {\n static getAttributeTypeMap() {\n return V1DeploymentCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1DeploymentCondition.discriminator = undefined;\nV1DeploymentCondition.mapping = undefined;\nV1DeploymentCondition.attributeTypeMap = [\n {\n \"name\": \"lastTransitionTime\",\n \"baseName\": \"lastTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"lastUpdateTime\",\n \"baseName\": \"lastUpdateTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1DeploymentCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeploymentList is a list of Deployments.\n*/\nexport class V1DeploymentList {\n static getAttributeTypeMap() {\n return V1DeploymentList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1DeploymentList.discriminator = undefined;\nV1DeploymentList.mapping = undefined;\nV1DeploymentList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1DeploymentList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeploymentSpec is the specification of the desired behavior of the Deployment.\n*/\nexport class V1DeploymentSpec {\n static getAttributeTypeMap() {\n return V1DeploymentSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1DeploymentSpec.discriminator = undefined;\nV1DeploymentSpec.mapping = undefined;\nV1DeploymentSpec.attributeTypeMap = [\n {\n \"name\": \"minReadySeconds\",\n \"baseName\": \"minReadySeconds\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"paused\",\n \"baseName\": \"paused\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"progressDeadlineSeconds\",\n \"baseName\": \"progressDeadlineSeconds\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"replicas\",\n \"baseName\": \"replicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"revisionHistoryLimit\",\n \"baseName\": \"revisionHistoryLimit\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"selector\",\n \"baseName\": \"selector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"strategy\",\n \"baseName\": \"strategy\",\n \"type\": \"V1DeploymentStrategy\",\n \"format\": \"\"\n },\n {\n \"name\": \"template\",\n \"baseName\": \"template\",\n \"type\": \"V1PodTemplateSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1DeploymentSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeploymentStatus is the most recently observed status of the Deployment.\n*/\nexport class V1DeploymentStatus {\n static getAttributeTypeMap() {\n return V1DeploymentStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1DeploymentStatus.discriminator = undefined;\nV1DeploymentStatus.mapping = undefined;\nV1DeploymentStatus.attributeTypeMap = [\n {\n \"name\": \"availableReplicas\",\n \"baseName\": \"availableReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"collisionCount\",\n \"baseName\": \"collisionCount\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"observedGeneration\",\n \"baseName\": \"observedGeneration\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"readyReplicas\",\n \"baseName\": \"readyReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"replicas\",\n \"baseName\": \"replicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"terminatingReplicas\",\n \"baseName\": \"terminatingReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"unavailableReplicas\",\n \"baseName\": \"unavailableReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"updatedReplicas\",\n \"baseName\": \"updatedReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1DeploymentStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeploymentStrategy describes how to replace existing pods with new ones.\n*/\nexport class V1DeploymentStrategy {\n static getAttributeTypeMap() {\n return V1DeploymentStrategy.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1DeploymentStrategy.discriminator = undefined;\nV1DeploymentStrategy.mapping = undefined;\nV1DeploymentStrategy.attributeTypeMap = [\n {\n \"name\": \"rollingUpdate\",\n \"baseName\": \"rollingUpdate\",\n \"type\": \"V1RollingUpdateDeployment\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1DeploymentStrategy.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.\n*/\nexport class V1DownwardAPIProjection {\n static getAttributeTypeMap() {\n return V1DownwardAPIProjection.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1DownwardAPIProjection.discriminator = undefined;\nV1DownwardAPIProjection.mapping = undefined;\nV1DownwardAPIProjection.attributeTypeMap = [\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1DownwardAPIProjection.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DownwardAPIVolumeFile represents information to create the file containing the pod field\n*/\nexport class V1DownwardAPIVolumeFile {\n static getAttributeTypeMap() {\n return V1DownwardAPIVolumeFile.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1DownwardAPIVolumeFile.discriminator = undefined;\nV1DownwardAPIVolumeFile.mapping = undefined;\nV1DownwardAPIVolumeFile.attributeTypeMap = [\n {\n \"name\": \"fieldRef\",\n \"baseName\": \"fieldRef\",\n \"type\": \"V1ObjectFieldSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"mode\",\n \"baseName\": \"mode\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"path\",\n \"baseName\": \"path\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceFieldRef\",\n \"baseName\": \"resourceFieldRef\",\n \"type\": \"V1ResourceFieldSelector\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1DownwardAPIVolumeFile.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.\n*/\nexport class V1DownwardAPIVolumeSource {\n static getAttributeTypeMap() {\n return V1DownwardAPIVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1DownwardAPIVolumeSource.discriminator = undefined;\nV1DownwardAPIVolumeSource.mapping = undefined;\nV1DownwardAPIVolumeSource.attributeTypeMap = [\n {\n \"name\": \"defaultMode\",\n \"baseName\": \"defaultMode\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1DownwardAPIVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.\n*/\nexport class V1EmptyDirVolumeSource {\n static getAttributeTypeMap() {\n return V1EmptyDirVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1EmptyDirVolumeSource.discriminator = undefined;\nV1EmptyDirVolumeSource.mapping = undefined;\nV1EmptyDirVolumeSource.attributeTypeMap = [\n {\n \"name\": \"medium\",\n \"baseName\": \"medium\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"sizeLimit\",\n \"baseName\": \"sizeLimit\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1EmptyDirVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Endpoint represents a single logical \\\"backend\\\" implementing a service.\n*/\nexport class V1Endpoint {\n static getAttributeTypeMap() {\n return V1Endpoint.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Endpoint.discriminator = undefined;\nV1Endpoint.mapping = undefined;\nV1Endpoint.attributeTypeMap = [\n {\n \"name\": \"addresses\",\n \"baseName\": \"addresses\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"V1EndpointConditions\",\n \"format\": \"\"\n },\n {\n \"name\": \"deprecatedTopology\",\n \"baseName\": \"deprecatedTopology\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"hints\",\n \"baseName\": \"hints\",\n \"type\": \"V1EndpointHints\",\n \"format\": \"\"\n },\n {\n \"name\": \"hostname\",\n \"baseName\": \"hostname\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeName\",\n \"baseName\": \"nodeName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"targetRef\",\n \"baseName\": \"targetRef\",\n \"type\": \"V1ObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"zone\",\n \"baseName\": \"zone\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Endpoint.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* EndpointAddress is a tuple that describes single IP address. Deprecated: This API is deprecated in v1.33+.\n*/\nexport class V1EndpointAddress {\n static getAttributeTypeMap() {\n return V1EndpointAddress.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1EndpointAddress.discriminator = undefined;\nV1EndpointAddress.mapping = undefined;\nV1EndpointAddress.attributeTypeMap = [\n {\n \"name\": \"hostname\",\n \"baseName\": \"hostname\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"ip\",\n \"baseName\": \"ip\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeName\",\n \"baseName\": \"nodeName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"targetRef\",\n \"baseName\": \"targetRef\",\n \"type\": \"V1ObjectReference\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1EndpointAddress.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* EndpointConditions represents the current condition of an endpoint.\n*/\nexport class V1EndpointConditions {\n static getAttributeTypeMap() {\n return V1EndpointConditions.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1EndpointConditions.discriminator = undefined;\nV1EndpointConditions.mapping = undefined;\nV1EndpointConditions.attributeTypeMap = [\n {\n \"name\": \"ready\",\n \"baseName\": \"ready\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"serving\",\n \"baseName\": \"serving\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"terminating\",\n \"baseName\": \"terminating\",\n \"type\": \"boolean\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1EndpointConditions.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* EndpointHints provides hints describing how an endpoint should be consumed.\n*/\nexport class V1EndpointHints {\n static getAttributeTypeMap() {\n return V1EndpointHints.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1EndpointHints.discriminator = undefined;\nV1EndpointHints.mapping = undefined;\nV1EndpointHints.attributeTypeMap = [\n {\n \"name\": \"forNodes\",\n \"baseName\": \"forNodes\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"forZones\",\n \"baseName\": \"forZones\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1EndpointHints.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* EndpointSlice represents a set of service endpoints. Most EndpointSlices are created by the EndpointSlice controller to represent the Pods selected by Service objects. For a given service there may be multiple EndpointSlice objects which must be joined to produce the full set of endpoints; you can find all of the slices for a given service by listing EndpointSlices in the service\\'s namespace whose `kubernetes.io/service-name` label contains the service\\'s name.\n*/\nexport class V1EndpointSlice {\n static getAttributeTypeMap() {\n return V1EndpointSlice.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1EndpointSlice.discriminator = undefined;\nV1EndpointSlice.mapping = undefined;\nV1EndpointSlice.attributeTypeMap = [\n {\n \"name\": \"addressType\",\n \"baseName\": \"addressType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"endpoints\",\n \"baseName\": \"endpoints\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"ports\",\n \"baseName\": \"ports\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1EndpointSlice.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* EndpointSliceList represents a list of endpoint slices\n*/\nexport class V1EndpointSliceList {\n static getAttributeTypeMap() {\n return V1EndpointSliceList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1EndpointSliceList.discriminator = undefined;\nV1EndpointSliceList.mapping = undefined;\nV1EndpointSliceList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1EndpointSliceList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given: { Addresses: [{\\\"ip\\\": \\\"10.10.1.1\\\"}, {\\\"ip\\\": \\\"10.10.2.2\\\"}], Ports: [{\\\"name\\\": \\\"a\\\", \\\"port\\\": 8675}, {\\\"name\\\": \\\"b\\\", \\\"port\\\": 309}] } The resulting set of endpoints can be viewed as: a: [ 10.10.1.1:8675, 10.10.2.2:8675 ], b: [ 10.10.1.1:309, 10.10.2.2:309 ] Deprecated: This API is deprecated in v1.33+.\n*/\nexport class V1EndpointSubset {\n static getAttributeTypeMap() {\n return V1EndpointSubset.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1EndpointSubset.discriminator = undefined;\nV1EndpointSubset.mapping = undefined;\nV1EndpointSubset.attributeTypeMap = [\n {\n \"name\": \"addresses\",\n \"baseName\": \"addresses\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"notReadyAddresses\",\n \"baseName\": \"notReadyAddresses\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"ports\",\n \"baseName\": \"ports\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1EndpointSubset.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Endpoints is a collection of endpoints that implement the actual service. Example: Name: \\\"mysvc\\\", Subsets: [ { Addresses: [{\\\"ip\\\": \\\"10.10.1.1\\\"}, {\\\"ip\\\": \\\"10.10.2.2\\\"}], Ports: [{\\\"name\\\": \\\"a\\\", \\\"port\\\": 8675}, {\\\"name\\\": \\\"b\\\", \\\"port\\\": 309}] }, { Addresses: [{\\\"ip\\\": \\\"10.10.3.3\\\"}], Ports: [{\\\"name\\\": \\\"a\\\", \\\"port\\\": 93}, {\\\"name\\\": \\\"b\\\", \\\"port\\\": 76}] }, ] Endpoints is a legacy API and does not contain information about all Service features. Use discoveryv1.EndpointSlice for complete information about Service endpoints. Deprecated: This API is deprecated in v1.33+. Use discoveryv1.EndpointSlice.\n*/\nexport class V1Endpoints {\n static getAttributeTypeMap() {\n return V1Endpoints.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Endpoints.discriminator = undefined;\nV1Endpoints.mapping = undefined;\nV1Endpoints.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"subsets\",\n \"baseName\": \"subsets\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Endpoints.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* EndpointsList is a list of endpoints. Deprecated: This API is deprecated in v1.33+.\n*/\nexport class V1EndpointsList {\n static getAttributeTypeMap() {\n return V1EndpointsList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1EndpointsList.discriminator = undefined;\nV1EndpointsList.mapping = undefined;\nV1EndpointsList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1EndpointsList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* EnvFromSource represents the source of a set of ConfigMaps or Secrets\n*/\nexport class V1EnvFromSource {\n static getAttributeTypeMap() {\n return V1EnvFromSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1EnvFromSource.discriminator = undefined;\nV1EnvFromSource.mapping = undefined;\nV1EnvFromSource.attributeTypeMap = [\n {\n \"name\": \"configMapRef\",\n \"baseName\": \"configMapRef\",\n \"type\": \"V1ConfigMapEnvSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"prefix\",\n \"baseName\": \"prefix\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretRef\",\n \"baseName\": \"secretRef\",\n \"type\": \"V1SecretEnvSource\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1EnvFromSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* EnvVar represents an environment variable present in a Container.\n*/\nexport class V1EnvVar {\n static getAttributeTypeMap() {\n return V1EnvVar.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1EnvVar.discriminator = undefined;\nV1EnvVar.mapping = undefined;\nV1EnvVar.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"valueFrom\",\n \"baseName\": \"valueFrom\",\n \"type\": \"V1EnvVarSource\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1EnvVar.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* EnvVarSource represents a source for the value of an EnvVar.\n*/\nexport class V1EnvVarSource {\n static getAttributeTypeMap() {\n return V1EnvVarSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1EnvVarSource.discriminator = undefined;\nV1EnvVarSource.mapping = undefined;\nV1EnvVarSource.attributeTypeMap = [\n {\n \"name\": \"configMapKeyRef\",\n \"baseName\": \"configMapKeyRef\",\n \"type\": \"V1ConfigMapKeySelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"fieldRef\",\n \"baseName\": \"fieldRef\",\n \"type\": \"V1ObjectFieldSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceFieldRef\",\n \"baseName\": \"resourceFieldRef\",\n \"type\": \"V1ResourceFieldSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretKeyRef\",\n \"baseName\": \"secretKeyRef\",\n \"type\": \"V1SecretKeySelector\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1EnvVarSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* An EphemeralContainer is a temporary container that you may add to an existing Pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a Pod is removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.\n*/\nexport class V1EphemeralContainer {\n static getAttributeTypeMap() {\n return V1EphemeralContainer.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1EphemeralContainer.discriminator = undefined;\nV1EphemeralContainer.mapping = undefined;\nV1EphemeralContainer.attributeTypeMap = [\n {\n \"name\": \"args\",\n \"baseName\": \"args\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"command\",\n \"baseName\": \"command\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"env\",\n \"baseName\": \"env\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"envFrom\",\n \"baseName\": \"envFrom\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"image\",\n \"baseName\": \"image\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"imagePullPolicy\",\n \"baseName\": \"imagePullPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"lifecycle\",\n \"baseName\": \"lifecycle\",\n \"type\": \"V1Lifecycle\",\n \"format\": \"\"\n },\n {\n \"name\": \"livenessProbe\",\n \"baseName\": \"livenessProbe\",\n \"type\": \"V1Probe\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"ports\",\n \"baseName\": \"ports\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"readinessProbe\",\n \"baseName\": \"readinessProbe\",\n \"type\": \"V1Probe\",\n \"format\": \"\"\n },\n {\n \"name\": \"resizePolicy\",\n \"baseName\": \"resizePolicy\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resources\",\n \"baseName\": \"resources\",\n \"type\": \"V1ResourceRequirements\",\n \"format\": \"\"\n },\n {\n \"name\": \"restartPolicy\",\n \"baseName\": \"restartPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"securityContext\",\n \"baseName\": \"securityContext\",\n \"type\": \"V1SecurityContext\",\n \"format\": \"\"\n },\n {\n \"name\": \"startupProbe\",\n \"baseName\": \"startupProbe\",\n \"type\": \"V1Probe\",\n \"format\": \"\"\n },\n {\n \"name\": \"stdin\",\n \"baseName\": \"stdin\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"stdinOnce\",\n \"baseName\": \"stdinOnce\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"targetContainerName\",\n \"baseName\": \"targetContainerName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"terminationMessagePath\",\n \"baseName\": \"terminationMessagePath\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"terminationMessagePolicy\",\n \"baseName\": \"terminationMessagePolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"tty\",\n \"baseName\": \"tty\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeDevices\",\n \"baseName\": \"volumeDevices\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeMounts\",\n \"baseName\": \"volumeMounts\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"workingDir\",\n \"baseName\": \"workingDir\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1EphemeralContainer.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents an ephemeral volume that is handled by a normal storage driver.\n*/\nexport class V1EphemeralVolumeSource {\n static getAttributeTypeMap() {\n return V1EphemeralVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1EphemeralVolumeSource.discriminator = undefined;\nV1EphemeralVolumeSource.mapping = undefined;\nV1EphemeralVolumeSource.attributeTypeMap = [\n {\n \"name\": \"volumeClaimTemplate\",\n \"baseName\": \"volumeClaimTemplate\",\n \"type\": \"V1PersistentVolumeClaimTemplate\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1EphemeralVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* EventSource contains information for an event.\n*/\nexport class V1EventSource {\n static getAttributeTypeMap() {\n return V1EventSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1EventSource.discriminator = undefined;\nV1EventSource.mapping = undefined;\nV1EventSource.attributeTypeMap = [\n {\n \"name\": \"component\",\n \"baseName\": \"component\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"host\",\n \"baseName\": \"host\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1EventSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods//evictions.\n*/\nexport class V1Eviction {\n static getAttributeTypeMap() {\n return V1Eviction.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Eviction.discriminator = undefined;\nV1Eviction.mapping = undefined;\nV1Eviction.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"deleteOptions\",\n \"baseName\": \"deleteOptions\",\n \"type\": \"V1DeleteOptions\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Eviction.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ExecAction describes a \\\"run in container\\\" action.\n*/\nexport class V1ExecAction {\n static getAttributeTypeMap() {\n return V1ExecAction.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ExecAction.discriminator = undefined;\nV1ExecAction.mapping = undefined;\nV1ExecAction.attributeTypeMap = [\n {\n \"name\": \"command\",\n \"baseName\": \"command\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ExecAction.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ExemptPriorityLevelConfiguration describes the configurable aspects of the handling of exempt requests. In the mandatory exempt configuration object the values in the fields here can be modified by authorized users, unlike the rest of the `spec`.\n*/\nexport class V1ExemptPriorityLevelConfiguration {\n static getAttributeTypeMap() {\n return V1ExemptPriorityLevelConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ExemptPriorityLevelConfiguration.discriminator = undefined;\nV1ExemptPriorityLevelConfiguration.mapping = undefined;\nV1ExemptPriorityLevelConfiguration.attributeTypeMap = [\n {\n \"name\": \"lendablePercent\",\n \"baseName\": \"lendablePercent\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"nominalConcurrencyShares\",\n \"baseName\": \"nominalConcurrencyShares\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1ExemptPriorityLevelConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ExpressionWarning is a warning information that targets a specific expression.\n*/\nexport class V1ExpressionWarning {\n static getAttributeTypeMap() {\n return V1ExpressionWarning.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ExpressionWarning.discriminator = undefined;\nV1ExpressionWarning.mapping = undefined;\nV1ExpressionWarning.attributeTypeMap = [\n {\n \"name\": \"fieldRef\",\n \"baseName\": \"fieldRef\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"warning\",\n \"baseName\": \"warning\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ExpressionWarning.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ExternalDocumentation allows referencing an external resource for extended documentation.\n*/\nexport class V1ExternalDocumentation {\n static getAttributeTypeMap() {\n return V1ExternalDocumentation.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ExternalDocumentation.discriminator = undefined;\nV1ExternalDocumentation.mapping = undefined;\nV1ExternalDocumentation.attributeTypeMap = [\n {\n \"name\": \"description\",\n \"baseName\": \"description\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"url\",\n \"baseName\": \"url\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ExternalDocumentation.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.\n*/\nexport class V1FCVolumeSource {\n static getAttributeTypeMap() {\n return V1FCVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1FCVolumeSource.discriminator = undefined;\nV1FCVolumeSource.mapping = undefined;\nV1FCVolumeSource.attributeTypeMap = [\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"lun\",\n \"baseName\": \"lun\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"targetWWNs\",\n \"baseName\": \"targetWWNs\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"wwids\",\n \"baseName\": \"wwids\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1FCVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* FieldSelectorAttributes indicates a field limited access. Webhook authors are encouraged to * ensure rawSelector and requirements are not both set * consider the requirements field if set * not try to parse or consider the rawSelector field if set. This is to avoid another CVE-2022-2880 (i.e. getting different systems to agree on how exactly to parse a query is not something we want), see https://www.oxeye.io/resources/golang-parameter-smuggling-attack for more details. For the *SubjectAccessReview endpoints of the kube-apiserver: * If rawSelector is empty and requirements are empty, the request is not limited. * If rawSelector is present and requirements are empty, the rawSelector will be parsed and limited if the parsing succeeds. * If rawSelector is empty and requirements are present, the requirements should be honored * If rawSelector is present and requirements are present, the request is invalid.\n*/\nexport class V1FieldSelectorAttributes {\n static getAttributeTypeMap() {\n return V1FieldSelectorAttributes.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1FieldSelectorAttributes.discriminator = undefined;\nV1FieldSelectorAttributes.mapping = undefined;\nV1FieldSelectorAttributes.attributeTypeMap = [\n {\n \"name\": \"rawSelector\",\n \"baseName\": \"rawSelector\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"requirements\",\n \"baseName\": \"requirements\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1FieldSelectorAttributes.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* FieldSelectorRequirement is a selector that contains values, a key, and an operator that relates the key and values.\n*/\nexport class V1FieldSelectorRequirement {\n static getAttributeTypeMap() {\n return V1FieldSelectorRequirement.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1FieldSelectorRequirement.discriminator = undefined;\nV1FieldSelectorRequirement.mapping = undefined;\nV1FieldSelectorRequirement.attributeTypeMap = [\n {\n \"name\": \"key\",\n \"baseName\": \"key\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"operator\",\n \"baseName\": \"operator\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"values\",\n \"baseName\": \"values\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1FieldSelectorRequirement.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.\n*/\nexport class V1FlexPersistentVolumeSource {\n static getAttributeTypeMap() {\n return V1FlexPersistentVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1FlexPersistentVolumeSource.discriminator = undefined;\nV1FlexPersistentVolumeSource.mapping = undefined;\nV1FlexPersistentVolumeSource.attributeTypeMap = [\n {\n \"name\": \"driver\",\n \"baseName\": \"driver\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"options\",\n \"baseName\": \"options\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretRef\",\n \"baseName\": \"secretRef\",\n \"type\": \"V1SecretReference\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1FlexPersistentVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\n*/\nexport class V1FlexVolumeSource {\n static getAttributeTypeMap() {\n return V1FlexVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1FlexVolumeSource.discriminator = undefined;\nV1FlexVolumeSource.mapping = undefined;\nV1FlexVolumeSource.attributeTypeMap = [\n {\n \"name\": \"driver\",\n \"baseName\": \"driver\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"options\",\n \"baseName\": \"options\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretRef\",\n \"baseName\": \"secretRef\",\n \"type\": \"V1LocalObjectReference\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1FlexVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.\n*/\nexport class V1FlockerVolumeSource {\n static getAttributeTypeMap() {\n return V1FlockerVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1FlockerVolumeSource.discriminator = undefined;\nV1FlockerVolumeSource.mapping = undefined;\nV1FlockerVolumeSource.attributeTypeMap = [\n {\n \"name\": \"datasetName\",\n \"baseName\": \"datasetName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"datasetUUID\",\n \"baseName\": \"datasetUUID\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1FlockerVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* FlowDistinguisherMethod specifies the method of a flow distinguisher.\n*/\nexport class V1FlowDistinguisherMethod {\n static getAttributeTypeMap() {\n return V1FlowDistinguisherMethod.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1FlowDistinguisherMethod.discriminator = undefined;\nV1FlowDistinguisherMethod.mapping = undefined;\nV1FlowDistinguisherMethod.attributeTypeMap = [\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1FlowDistinguisherMethod.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \\\"flow distinguisher\\\".\n*/\nexport class V1FlowSchema {\n static getAttributeTypeMap() {\n return V1FlowSchema.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1FlowSchema.discriminator = undefined;\nV1FlowSchema.mapping = undefined;\nV1FlowSchema.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1FlowSchemaSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1FlowSchemaStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1FlowSchema.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* FlowSchemaCondition describes conditions for a FlowSchema.\n*/\nexport class V1FlowSchemaCondition {\n static getAttributeTypeMap() {\n return V1FlowSchemaCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1FlowSchemaCondition.discriminator = undefined;\nV1FlowSchemaCondition.mapping = undefined;\nV1FlowSchemaCondition.attributeTypeMap = [\n {\n \"name\": \"lastTransitionTime\",\n \"baseName\": \"lastTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1FlowSchemaCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* FlowSchemaList is a list of FlowSchema objects.\n*/\nexport class V1FlowSchemaList {\n static getAttributeTypeMap() {\n return V1FlowSchemaList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1FlowSchemaList.discriminator = undefined;\nV1FlowSchemaList.mapping = undefined;\nV1FlowSchemaList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1FlowSchemaList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* FlowSchemaSpec describes how the FlowSchema\\'s specification looks like.\n*/\nexport class V1FlowSchemaSpec {\n static getAttributeTypeMap() {\n return V1FlowSchemaSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1FlowSchemaSpec.discriminator = undefined;\nV1FlowSchemaSpec.mapping = undefined;\nV1FlowSchemaSpec.attributeTypeMap = [\n {\n \"name\": \"distinguisherMethod\",\n \"baseName\": \"distinguisherMethod\",\n \"type\": \"V1FlowDistinguisherMethod\",\n \"format\": \"\"\n },\n {\n \"name\": \"matchingPrecedence\",\n \"baseName\": \"matchingPrecedence\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"priorityLevelConfiguration\",\n \"baseName\": \"priorityLevelConfiguration\",\n \"type\": \"V1PriorityLevelConfigurationReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"rules\",\n \"baseName\": \"rules\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1FlowSchemaSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* FlowSchemaStatus represents the current state of a FlowSchema.\n*/\nexport class V1FlowSchemaStatus {\n static getAttributeTypeMap() {\n return V1FlowSchemaStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1FlowSchemaStatus.discriminator = undefined;\nV1FlowSchemaStatus.mapping = undefined;\nV1FlowSchemaStatus.attributeTypeMap = [\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1FlowSchemaStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ForNode provides information about which nodes should consume this endpoint.\n*/\nexport class V1ForNode {\n static getAttributeTypeMap() {\n return V1ForNode.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ForNode.discriminator = undefined;\nV1ForNode.mapping = undefined;\nV1ForNode.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ForNode.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ForZone provides information about which zones should consume this endpoint.\n*/\nexport class V1ForZone {\n static getAttributeTypeMap() {\n return V1ForZone.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ForZone.discriminator = undefined;\nV1ForZone.mapping = undefined;\nV1ForZone.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ForZone.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a Persistent Disk resource in Google Compute Engine. A GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.\n*/\nexport class V1GCEPersistentDiskVolumeSource {\n static getAttributeTypeMap() {\n return V1GCEPersistentDiskVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1GCEPersistentDiskVolumeSource.discriminator = undefined;\nV1GCEPersistentDiskVolumeSource.mapping = undefined;\nV1GCEPersistentDiskVolumeSource.attributeTypeMap = [\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"partition\",\n \"baseName\": \"partition\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"pdName\",\n \"baseName\": \"pdName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1GCEPersistentDiskVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* GRPCAction specifies an action involving a GRPC service.\n*/\nexport class V1GRPCAction {\n static getAttributeTypeMap() {\n return V1GRPCAction.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1GRPCAction.discriminator = undefined;\nV1GRPCAction.mapping = undefined;\nV1GRPCAction.attributeTypeMap = [\n {\n \"name\": \"port\",\n \"baseName\": \"port\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"service\",\n \"baseName\": \"service\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1GRPCAction.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod\\'s container.\n*/\nexport class V1GitRepoVolumeSource {\n static getAttributeTypeMap() {\n return V1GitRepoVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1GitRepoVolumeSource.discriminator = undefined;\nV1GitRepoVolumeSource.mapping = undefined;\nV1GitRepoVolumeSource.attributeTypeMap = [\n {\n \"name\": \"directory\",\n \"baseName\": \"directory\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"repository\",\n \"baseName\": \"repository\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"revision\",\n \"baseName\": \"revision\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1GitRepoVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.\n*/\nexport class V1GlusterfsPersistentVolumeSource {\n static getAttributeTypeMap() {\n return V1GlusterfsPersistentVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1GlusterfsPersistentVolumeSource.discriminator = undefined;\nV1GlusterfsPersistentVolumeSource.mapping = undefined;\nV1GlusterfsPersistentVolumeSource.attributeTypeMap = [\n {\n \"name\": \"endpoints\",\n \"baseName\": \"endpoints\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"endpointsNamespace\",\n \"baseName\": \"endpointsNamespace\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"path\",\n \"baseName\": \"path\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1GlusterfsPersistentVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.\n*/\nexport class V1GlusterfsVolumeSource {\n static getAttributeTypeMap() {\n return V1GlusterfsVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1GlusterfsVolumeSource.discriminator = undefined;\nV1GlusterfsVolumeSource.mapping = undefined;\nV1GlusterfsVolumeSource.attributeTypeMap = [\n {\n \"name\": \"endpoints\",\n \"baseName\": \"endpoints\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"path\",\n \"baseName\": \"path\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1GlusterfsVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* GroupSubject holds detailed information for group-kind subject.\n*/\nexport class V1GroupSubject {\n static getAttributeTypeMap() {\n return V1GroupSubject.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1GroupSubject.discriminator = undefined;\nV1GroupSubject.mapping = undefined;\nV1GroupSubject.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1GroupSubject.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* GroupVersion contains the \\\"group/version\\\" and \\\"version\\\" string of a version. It is made a struct to keep extensibility.\n*/\nexport class V1GroupVersionForDiscovery {\n static getAttributeTypeMap() {\n return V1GroupVersionForDiscovery.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1GroupVersionForDiscovery.discriminator = undefined;\nV1GroupVersionForDiscovery.mapping = undefined;\nV1GroupVersionForDiscovery.attributeTypeMap = [\n {\n \"name\": \"groupVersion\",\n \"baseName\": \"groupVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"version\",\n \"baseName\": \"version\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1GroupVersionForDiscovery.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* HTTPGetAction describes an action based on HTTP Get requests.\n*/\nexport class V1HTTPGetAction {\n static getAttributeTypeMap() {\n return V1HTTPGetAction.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1HTTPGetAction.discriminator = undefined;\nV1HTTPGetAction.mapping = undefined;\nV1HTTPGetAction.attributeTypeMap = [\n {\n \"name\": \"host\",\n \"baseName\": \"host\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"httpHeaders\",\n \"baseName\": \"httpHeaders\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"path\",\n \"baseName\": \"path\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"port\",\n \"baseName\": \"port\",\n \"type\": \"IntOrString\",\n \"format\": \"int-or-string\"\n },\n {\n \"name\": \"scheme\",\n \"baseName\": \"scheme\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1HTTPGetAction.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* HTTPHeader describes a custom header to be used in HTTP probes\n*/\nexport class V1HTTPHeader {\n static getAttributeTypeMap() {\n return V1HTTPHeader.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1HTTPHeader.discriminator = undefined;\nV1HTTPHeader.mapping = undefined;\nV1HTTPHeader.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1HTTPHeader.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.\n*/\nexport class V1HTTPIngressPath {\n static getAttributeTypeMap() {\n return V1HTTPIngressPath.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1HTTPIngressPath.discriminator = undefined;\nV1HTTPIngressPath.mapping = undefined;\nV1HTTPIngressPath.attributeTypeMap = [\n {\n \"name\": \"backend\",\n \"baseName\": \"backend\",\n \"type\": \"V1IngressBackend\",\n \"format\": \"\"\n },\n {\n \"name\": \"path\",\n \"baseName\": \"path\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"pathType\",\n \"baseName\": \"pathType\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1HTTPIngressPath.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http:///? -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last \\'/\\' and before the first \\'?\\' or \\'#\\'.\n*/\nexport class V1HTTPIngressRuleValue {\n static getAttributeTypeMap() {\n return V1HTTPIngressRuleValue.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1HTTPIngressRuleValue.discriminator = undefined;\nV1HTTPIngressRuleValue.mapping = undefined;\nV1HTTPIngressRuleValue.attributeTypeMap = [\n {\n \"name\": \"paths\",\n \"baseName\": \"paths\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1HTTPIngressRuleValue.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* configuration of a horizontal pod autoscaler.\n*/\nexport class V1HorizontalPodAutoscaler {\n static getAttributeTypeMap() {\n return V1HorizontalPodAutoscaler.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1HorizontalPodAutoscaler.discriminator = undefined;\nV1HorizontalPodAutoscaler.mapping = undefined;\nV1HorizontalPodAutoscaler.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1HorizontalPodAutoscalerSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1HorizontalPodAutoscalerStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1HorizontalPodAutoscaler.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* list of horizontal pod autoscaler objects.\n*/\nexport class V1HorizontalPodAutoscalerList {\n static getAttributeTypeMap() {\n return V1HorizontalPodAutoscalerList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1HorizontalPodAutoscalerList.discriminator = undefined;\nV1HorizontalPodAutoscalerList.mapping = undefined;\nV1HorizontalPodAutoscalerList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1HorizontalPodAutoscalerList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* specification of a horizontal pod autoscaler.\n*/\nexport class V1HorizontalPodAutoscalerSpec {\n static getAttributeTypeMap() {\n return V1HorizontalPodAutoscalerSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1HorizontalPodAutoscalerSpec.discriminator = undefined;\nV1HorizontalPodAutoscalerSpec.mapping = undefined;\nV1HorizontalPodAutoscalerSpec.attributeTypeMap = [\n {\n \"name\": \"maxReplicas\",\n \"baseName\": \"maxReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"minReplicas\",\n \"baseName\": \"minReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"scaleTargetRef\",\n \"baseName\": \"scaleTargetRef\",\n \"type\": \"V1CrossVersionObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"targetCPUUtilizationPercentage\",\n \"baseName\": \"targetCPUUtilizationPercentage\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1HorizontalPodAutoscalerSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* current status of a horizontal pod autoscaler\n*/\nexport class V1HorizontalPodAutoscalerStatus {\n static getAttributeTypeMap() {\n return V1HorizontalPodAutoscalerStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1HorizontalPodAutoscalerStatus.discriminator = undefined;\nV1HorizontalPodAutoscalerStatus.mapping = undefined;\nV1HorizontalPodAutoscalerStatus.attributeTypeMap = [\n {\n \"name\": \"currentCPUUtilizationPercentage\",\n \"baseName\": \"currentCPUUtilizationPercentage\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"currentReplicas\",\n \"baseName\": \"currentReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"desiredReplicas\",\n \"baseName\": \"desiredReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"lastScaleTime\",\n \"baseName\": \"lastScaleTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"observedGeneration\",\n \"baseName\": \"observedGeneration\",\n \"type\": \"number\",\n \"format\": \"int64\"\n }\n];\n//# sourceMappingURL=V1HorizontalPodAutoscalerStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod\\'s hosts file.\n*/\nexport class V1HostAlias {\n static getAttributeTypeMap() {\n return V1HostAlias.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1HostAlias.discriminator = undefined;\nV1HostAlias.mapping = undefined;\nV1HostAlias.attributeTypeMap = [\n {\n \"name\": \"hostnames\",\n \"baseName\": \"hostnames\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"ip\",\n \"baseName\": \"ip\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1HostAlias.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* HostIP represents a single IP address allocated to the host.\n*/\nexport class V1HostIP {\n static getAttributeTypeMap() {\n return V1HostIP.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1HostIP.discriminator = undefined;\nV1HostIP.mapping = undefined;\nV1HostIP.attributeTypeMap = [\n {\n \"name\": \"ip\",\n \"baseName\": \"ip\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1HostIP.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.\n*/\nexport class V1HostPathVolumeSource {\n static getAttributeTypeMap() {\n return V1HostPathVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1HostPathVolumeSource.discriminator = undefined;\nV1HostPathVolumeSource.mapping = undefined;\nV1HostPathVolumeSource.attributeTypeMap = [\n {\n \"name\": \"path\",\n \"baseName\": \"path\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1HostPathVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses. An IP address can be represented in different formats, to guarantee the uniqueness of the IP, the name of the object is the IP address in canonical format, four decimal digits separated by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6. Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1 Invalid: 10.01.2.3 or 2001:db8:0:0:0::1\n*/\nexport class V1IPAddress {\n static getAttributeTypeMap() {\n return V1IPAddress.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1IPAddress.discriminator = undefined;\nV1IPAddress.mapping = undefined;\nV1IPAddress.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1IPAddressSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1IPAddress.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IPAddressList contains a list of IPAddress.\n*/\nexport class V1IPAddressList {\n static getAttributeTypeMap() {\n return V1IPAddressList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1IPAddressList.discriminator = undefined;\nV1IPAddressList.mapping = undefined;\nV1IPAddressList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1IPAddressList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IPAddressSpec describe the attributes in an IP Address.\n*/\nexport class V1IPAddressSpec {\n static getAttributeTypeMap() {\n return V1IPAddressSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1IPAddressSpec.discriminator = undefined;\nV1IPAddressSpec.mapping = undefined;\nV1IPAddressSpec.attributeTypeMap = [\n {\n \"name\": \"parentRef\",\n \"baseName\": \"parentRef\",\n \"type\": \"V1ParentReference\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1IPAddressSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IPBlock describes a particular CIDR (Ex. \\\"192.168.1.0/24\\\",\\\"2001:db8::/64\\\") that is allowed to the pods matched by a NetworkPolicySpec\\'s podSelector. The except entry describes CIDRs that should not be included within this rule.\n*/\nexport class V1IPBlock {\n static getAttributeTypeMap() {\n return V1IPBlock.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1IPBlock.discriminator = undefined;\nV1IPBlock.mapping = undefined;\nV1IPBlock.attributeTypeMap = [\n {\n \"name\": \"cidr\",\n \"baseName\": \"cidr\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"except\",\n \"baseName\": \"except\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1IPBlock.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ISCSIPersistentVolumeSource represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.\n*/\nexport class V1ISCSIPersistentVolumeSource {\n static getAttributeTypeMap() {\n return V1ISCSIPersistentVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ISCSIPersistentVolumeSource.discriminator = undefined;\nV1ISCSIPersistentVolumeSource.mapping = undefined;\nV1ISCSIPersistentVolumeSource.attributeTypeMap = [\n {\n \"name\": \"chapAuthDiscovery\",\n \"baseName\": \"chapAuthDiscovery\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"chapAuthSession\",\n \"baseName\": \"chapAuthSession\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"initiatorName\",\n \"baseName\": \"initiatorName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"iqn\",\n \"baseName\": \"iqn\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"iscsiInterface\",\n \"baseName\": \"iscsiInterface\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"lun\",\n \"baseName\": \"lun\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"portals\",\n \"baseName\": \"portals\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretRef\",\n \"baseName\": \"secretRef\",\n \"type\": \"V1SecretReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"targetPortal\",\n \"baseName\": \"targetPortal\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ISCSIPersistentVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.\n*/\nexport class V1ISCSIVolumeSource {\n static getAttributeTypeMap() {\n return V1ISCSIVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ISCSIVolumeSource.discriminator = undefined;\nV1ISCSIVolumeSource.mapping = undefined;\nV1ISCSIVolumeSource.attributeTypeMap = [\n {\n \"name\": \"chapAuthDiscovery\",\n \"baseName\": \"chapAuthDiscovery\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"chapAuthSession\",\n \"baseName\": \"chapAuthSession\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"initiatorName\",\n \"baseName\": \"initiatorName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"iqn\",\n \"baseName\": \"iqn\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"iscsiInterface\",\n \"baseName\": \"iscsiInterface\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"lun\",\n \"baseName\": \"lun\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"portals\",\n \"baseName\": \"portals\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretRef\",\n \"baseName\": \"secretRef\",\n \"type\": \"V1LocalObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"targetPortal\",\n \"baseName\": \"targetPortal\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ISCSIVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ImageVolumeSource represents a image volume resource.\n*/\nexport class V1ImageVolumeSource {\n static getAttributeTypeMap() {\n return V1ImageVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ImageVolumeSource.discriminator = undefined;\nV1ImageVolumeSource.mapping = undefined;\nV1ImageVolumeSource.attributeTypeMap = [\n {\n \"name\": \"pullPolicy\",\n \"baseName\": \"pullPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reference\",\n \"baseName\": \"reference\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ImageVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.\n*/\nexport class V1Ingress {\n static getAttributeTypeMap() {\n return V1Ingress.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Ingress.discriminator = undefined;\nV1Ingress.mapping = undefined;\nV1Ingress.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1IngressSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1IngressStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Ingress.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IngressBackend describes all endpoints for a given service and port.\n*/\nexport class V1IngressBackend {\n static getAttributeTypeMap() {\n return V1IngressBackend.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1IngressBackend.discriminator = undefined;\nV1IngressBackend.mapping = undefined;\nV1IngressBackend.attributeTypeMap = [\n {\n \"name\": \"resource\",\n \"baseName\": \"resource\",\n \"type\": \"V1TypedLocalObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"service\",\n \"baseName\": \"service\",\n \"type\": \"V1IngressServiceBackend\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1IngressBackend.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.\n*/\nexport class V1IngressClass {\n static getAttributeTypeMap() {\n return V1IngressClass.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1IngressClass.discriminator = undefined;\nV1IngressClass.mapping = undefined;\nV1IngressClass.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1IngressClassSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1IngressClass.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IngressClassList is a collection of IngressClasses.\n*/\nexport class V1IngressClassList {\n static getAttributeTypeMap() {\n return V1IngressClassList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1IngressClassList.discriminator = undefined;\nV1IngressClassList.mapping = undefined;\nV1IngressClassList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1IngressClassList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IngressClassParametersReference identifies an API object. This can be used to specify a cluster or namespace-scoped resource.\n*/\nexport class V1IngressClassParametersReference {\n static getAttributeTypeMap() {\n return V1IngressClassParametersReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1IngressClassParametersReference.discriminator = undefined;\nV1IngressClassParametersReference.mapping = undefined;\nV1IngressClassParametersReference.attributeTypeMap = [\n {\n \"name\": \"apiGroup\",\n \"baseName\": \"apiGroup\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespace\",\n \"baseName\": \"namespace\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"scope\",\n \"baseName\": \"scope\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1IngressClassParametersReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IngressClassSpec provides information about the class of an Ingress.\n*/\nexport class V1IngressClassSpec {\n static getAttributeTypeMap() {\n return V1IngressClassSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1IngressClassSpec.discriminator = undefined;\nV1IngressClassSpec.mapping = undefined;\nV1IngressClassSpec.attributeTypeMap = [\n {\n \"name\": \"controller\",\n \"baseName\": \"controller\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"parameters\",\n \"baseName\": \"parameters\",\n \"type\": \"V1IngressClassParametersReference\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1IngressClassSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IngressList is a collection of Ingress.\n*/\nexport class V1IngressList {\n static getAttributeTypeMap() {\n return V1IngressList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1IngressList.discriminator = undefined;\nV1IngressList.mapping = undefined;\nV1IngressList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1IngressList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\n*/\nexport class V1IngressLoadBalancerIngress {\n static getAttributeTypeMap() {\n return V1IngressLoadBalancerIngress.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1IngressLoadBalancerIngress.discriminator = undefined;\nV1IngressLoadBalancerIngress.mapping = undefined;\nV1IngressLoadBalancerIngress.attributeTypeMap = [\n {\n \"name\": \"hostname\",\n \"baseName\": \"hostname\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"ip\",\n \"baseName\": \"ip\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"ports\",\n \"baseName\": \"ports\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1IngressLoadBalancerIngress.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IngressLoadBalancerStatus represents the status of a load-balancer.\n*/\nexport class V1IngressLoadBalancerStatus {\n static getAttributeTypeMap() {\n return V1IngressLoadBalancerStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1IngressLoadBalancerStatus.discriminator = undefined;\nV1IngressLoadBalancerStatus.mapping = undefined;\nV1IngressLoadBalancerStatus.attributeTypeMap = [\n {\n \"name\": \"ingress\",\n \"baseName\": \"ingress\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1IngressLoadBalancerStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IngressPortStatus represents the error condition of a service port\n*/\nexport class V1IngressPortStatus {\n static getAttributeTypeMap() {\n return V1IngressPortStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1IngressPortStatus.discriminator = undefined;\nV1IngressPortStatus.mapping = undefined;\nV1IngressPortStatus.attributeTypeMap = [\n {\n \"name\": \"error\",\n \"baseName\": \"error\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"port\",\n \"baseName\": \"port\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"protocol\",\n \"baseName\": \"protocol\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1IngressPortStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.\n*/\nexport class V1IngressRule {\n static getAttributeTypeMap() {\n return V1IngressRule.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1IngressRule.discriminator = undefined;\nV1IngressRule.mapping = undefined;\nV1IngressRule.attributeTypeMap = [\n {\n \"name\": \"host\",\n \"baseName\": \"host\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"http\",\n \"baseName\": \"http\",\n \"type\": \"V1HTTPIngressRuleValue\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1IngressRule.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IngressServiceBackend references a Kubernetes Service as a Backend.\n*/\nexport class V1IngressServiceBackend {\n static getAttributeTypeMap() {\n return V1IngressServiceBackend.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1IngressServiceBackend.discriminator = undefined;\nV1IngressServiceBackend.mapping = undefined;\nV1IngressServiceBackend.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"port\",\n \"baseName\": \"port\",\n \"type\": \"V1ServiceBackendPort\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1IngressServiceBackend.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IngressSpec describes the Ingress the user wishes to exist.\n*/\nexport class V1IngressSpec {\n static getAttributeTypeMap() {\n return V1IngressSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1IngressSpec.discriminator = undefined;\nV1IngressSpec.mapping = undefined;\nV1IngressSpec.attributeTypeMap = [\n {\n \"name\": \"defaultBackend\",\n \"baseName\": \"defaultBackend\",\n \"type\": \"V1IngressBackend\",\n \"format\": \"\"\n },\n {\n \"name\": \"ingressClassName\",\n \"baseName\": \"ingressClassName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"rules\",\n \"baseName\": \"rules\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"tls\",\n \"baseName\": \"tls\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1IngressSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IngressStatus describe the current state of the Ingress.\n*/\nexport class V1IngressStatus {\n static getAttributeTypeMap() {\n return V1IngressStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1IngressStatus.discriminator = undefined;\nV1IngressStatus.mapping = undefined;\nV1IngressStatus.attributeTypeMap = [\n {\n \"name\": \"loadBalancer\",\n \"baseName\": \"loadBalancer\",\n \"type\": \"V1IngressLoadBalancerStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1IngressStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IngressTLS describes the transport layer security associated with an ingress.\n*/\nexport class V1IngressTLS {\n static getAttributeTypeMap() {\n return V1IngressTLS.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1IngressTLS.discriminator = undefined;\nV1IngressTLS.mapping = undefined;\nV1IngressTLS.attributeTypeMap = [\n {\n \"name\": \"hosts\",\n \"baseName\": \"hosts\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretName\",\n \"baseName\": \"secretName\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1IngressTLS.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).\n*/\nexport class V1JSONSchemaProps {\n static getAttributeTypeMap() {\n return V1JSONSchemaProps.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1JSONSchemaProps.discriminator = undefined;\nV1JSONSchemaProps.mapping = undefined;\nV1JSONSchemaProps.attributeTypeMap = [\n {\n \"name\": \"ref\",\n \"baseName\": \"$ref\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"schema\",\n \"baseName\": \"$schema\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"additionalItems\",\n \"baseName\": \"additionalItems\",\n \"type\": \"any\",\n \"format\": \"\"\n },\n {\n \"name\": \"additionalProperties\",\n \"baseName\": \"additionalProperties\",\n \"type\": \"any\",\n \"format\": \"\"\n },\n {\n \"name\": \"allOf\",\n \"baseName\": \"allOf\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"anyOf\",\n \"baseName\": \"anyOf\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"_default\",\n \"baseName\": \"default\",\n \"type\": \"any\",\n \"format\": \"\"\n },\n {\n \"name\": \"definitions\",\n \"baseName\": \"definitions\",\n \"type\": \"{ [key: string]: V1JSONSchemaProps; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"dependencies\",\n \"baseName\": \"dependencies\",\n \"type\": \"{ [key: string]: any; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"description\",\n \"baseName\": \"description\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"_enum\",\n \"baseName\": \"enum\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"example\",\n \"baseName\": \"example\",\n \"type\": \"any\",\n \"format\": \"\"\n },\n {\n \"name\": \"exclusiveMaximum\",\n \"baseName\": \"exclusiveMaximum\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"exclusiveMinimum\",\n \"baseName\": \"exclusiveMinimum\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"externalDocs\",\n \"baseName\": \"externalDocs\",\n \"type\": \"V1ExternalDocumentation\",\n \"format\": \"\"\n },\n {\n \"name\": \"format\",\n \"baseName\": \"format\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"id\",\n \"baseName\": \"id\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"any\",\n \"format\": \"\"\n },\n {\n \"name\": \"maxItems\",\n \"baseName\": \"maxItems\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"maxLength\",\n \"baseName\": \"maxLength\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"maxProperties\",\n \"baseName\": \"maxProperties\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"maximum\",\n \"baseName\": \"maximum\",\n \"type\": \"number\",\n \"format\": \"double\"\n },\n {\n \"name\": \"minItems\",\n \"baseName\": \"minItems\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"minLength\",\n \"baseName\": \"minLength\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"minProperties\",\n \"baseName\": \"minProperties\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"minimum\",\n \"baseName\": \"minimum\",\n \"type\": \"number\",\n \"format\": \"double\"\n },\n {\n \"name\": \"multipleOf\",\n \"baseName\": \"multipleOf\",\n \"type\": \"number\",\n \"format\": \"double\"\n },\n {\n \"name\": \"not\",\n \"baseName\": \"not\",\n \"type\": \"V1JSONSchemaProps\",\n \"format\": \"\"\n },\n {\n \"name\": \"nullable\",\n \"baseName\": \"nullable\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"oneOf\",\n \"baseName\": \"oneOf\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"pattern\",\n \"baseName\": \"pattern\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"patternProperties\",\n \"baseName\": \"patternProperties\",\n \"type\": \"{ [key: string]: V1JSONSchemaProps; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"properties\",\n \"baseName\": \"properties\",\n \"type\": \"{ [key: string]: V1JSONSchemaProps; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"required\",\n \"baseName\": \"required\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"title\",\n \"baseName\": \"title\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"uniqueItems\",\n \"baseName\": \"uniqueItems\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"x_kubernetes_embedded_resource\",\n \"baseName\": \"x-kubernetes-embedded-resource\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"x_kubernetes_int_or_string\",\n \"baseName\": \"x-kubernetes-int-or-string\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"x_kubernetes_list_map_keys\",\n \"baseName\": \"x-kubernetes-list-map-keys\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"x_kubernetes_list_type\",\n \"baseName\": \"x-kubernetes-list-type\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"x_kubernetes_map_type\",\n \"baseName\": \"x-kubernetes-map-type\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"x_kubernetes_preserve_unknown_fields\",\n \"baseName\": \"x-kubernetes-preserve-unknown-fields\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"x_kubernetes_validations\",\n \"baseName\": \"x-kubernetes-validations\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1JSONSchemaProps.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Job represents the configuration of a single job.\n*/\nexport class V1Job {\n static getAttributeTypeMap() {\n return V1Job.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Job.discriminator = undefined;\nV1Job.mapping = undefined;\nV1Job.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1JobSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1JobStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Job.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* JobCondition describes current state of a job.\n*/\nexport class V1JobCondition {\n static getAttributeTypeMap() {\n return V1JobCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1JobCondition.discriminator = undefined;\nV1JobCondition.mapping = undefined;\nV1JobCondition.attributeTypeMap = [\n {\n \"name\": \"lastProbeTime\",\n \"baseName\": \"lastProbeTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"lastTransitionTime\",\n \"baseName\": \"lastTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1JobCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* JobList is a collection of jobs.\n*/\nexport class V1JobList {\n static getAttributeTypeMap() {\n return V1JobList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1JobList.discriminator = undefined;\nV1JobList.mapping = undefined;\nV1JobList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1JobList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* JobSpec describes how the job execution will look like.\n*/\nexport class V1JobSpec {\n static getAttributeTypeMap() {\n return V1JobSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1JobSpec.discriminator = undefined;\nV1JobSpec.mapping = undefined;\nV1JobSpec.attributeTypeMap = [\n {\n \"name\": \"activeDeadlineSeconds\",\n \"baseName\": \"activeDeadlineSeconds\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"backoffLimit\",\n \"baseName\": \"backoffLimit\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"backoffLimitPerIndex\",\n \"baseName\": \"backoffLimitPerIndex\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"completionMode\",\n \"baseName\": \"completionMode\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"completions\",\n \"baseName\": \"completions\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"managedBy\",\n \"baseName\": \"managedBy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"manualSelector\",\n \"baseName\": \"manualSelector\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"maxFailedIndexes\",\n \"baseName\": \"maxFailedIndexes\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"parallelism\",\n \"baseName\": \"parallelism\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"podFailurePolicy\",\n \"baseName\": \"podFailurePolicy\",\n \"type\": \"V1PodFailurePolicy\",\n \"format\": \"\"\n },\n {\n \"name\": \"podReplacementPolicy\",\n \"baseName\": \"podReplacementPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"selector\",\n \"baseName\": \"selector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"successPolicy\",\n \"baseName\": \"successPolicy\",\n \"type\": \"V1SuccessPolicy\",\n \"format\": \"\"\n },\n {\n \"name\": \"suspend\",\n \"baseName\": \"suspend\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"template\",\n \"baseName\": \"template\",\n \"type\": \"V1PodTemplateSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"ttlSecondsAfterFinished\",\n \"baseName\": \"ttlSecondsAfterFinished\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1JobSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* JobStatus represents the current state of a Job.\n*/\nexport class V1JobStatus {\n static getAttributeTypeMap() {\n return V1JobStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1JobStatus.discriminator = undefined;\nV1JobStatus.mapping = undefined;\nV1JobStatus.attributeTypeMap = [\n {\n \"name\": \"active\",\n \"baseName\": \"active\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"completedIndexes\",\n \"baseName\": \"completedIndexes\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"completionTime\",\n \"baseName\": \"completionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"failed\",\n \"baseName\": \"failed\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"failedIndexes\",\n \"baseName\": \"failedIndexes\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"ready\",\n \"baseName\": \"ready\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"startTime\",\n \"baseName\": \"startTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"succeeded\",\n \"baseName\": \"succeeded\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"terminating\",\n \"baseName\": \"terminating\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"uncountedTerminatedPods\",\n \"baseName\": \"uncountedTerminatedPods\",\n \"type\": \"V1UncountedTerminatedPods\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1JobStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* JobTemplateSpec describes the data a Job should have when created from a template\n*/\nexport class V1JobTemplateSpec {\n static getAttributeTypeMap() {\n return V1JobTemplateSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1JobTemplateSpec.discriminator = undefined;\nV1JobTemplateSpec.mapping = undefined;\nV1JobTemplateSpec.attributeTypeMap = [\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1JobSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1JobTemplateSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Maps a string key to a path within a volume.\n*/\nexport class V1KeyToPath {\n static getAttributeTypeMap() {\n return V1KeyToPath.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1KeyToPath.discriminator = undefined;\nV1KeyToPath.mapping = undefined;\nV1KeyToPath.attributeTypeMap = [\n {\n \"name\": \"key\",\n \"baseName\": \"key\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"mode\",\n \"baseName\": \"mode\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"path\",\n \"baseName\": \"path\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1KeyToPath.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.\n*/\nexport class V1LabelSelector {\n static getAttributeTypeMap() {\n return V1LabelSelector.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1LabelSelector.discriminator = undefined;\nV1LabelSelector.mapping = undefined;\nV1LabelSelector.attributeTypeMap = [\n {\n \"name\": \"matchExpressions\",\n \"baseName\": \"matchExpressions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"matchLabels\",\n \"baseName\": \"matchLabels\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1LabelSelector.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LabelSelectorAttributes indicates a label limited access. Webhook authors are encouraged to * ensure rawSelector and requirements are not both set * consider the requirements field if set * not try to parse or consider the rawSelector field if set. This is to avoid another CVE-2022-2880 (i.e. getting different systems to agree on how exactly to parse a query is not something we want), see https://www.oxeye.io/resources/golang-parameter-smuggling-attack for more details. For the *SubjectAccessReview endpoints of the kube-apiserver: * If rawSelector is empty and requirements are empty, the request is not limited. * If rawSelector is present and requirements are empty, the rawSelector will be parsed and limited if the parsing succeeds. * If rawSelector is empty and requirements are present, the requirements should be honored * If rawSelector is present and requirements are present, the request is invalid.\n*/\nexport class V1LabelSelectorAttributes {\n static getAttributeTypeMap() {\n return V1LabelSelectorAttributes.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1LabelSelectorAttributes.discriminator = undefined;\nV1LabelSelectorAttributes.mapping = undefined;\nV1LabelSelectorAttributes.attributeTypeMap = [\n {\n \"name\": \"rawSelector\",\n \"baseName\": \"rawSelector\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"requirements\",\n \"baseName\": \"requirements\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1LabelSelectorAttributes.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\n*/\nexport class V1LabelSelectorRequirement {\n static getAttributeTypeMap() {\n return V1LabelSelectorRequirement.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1LabelSelectorRequirement.discriminator = undefined;\nV1LabelSelectorRequirement.mapping = undefined;\nV1LabelSelectorRequirement.attributeTypeMap = [\n {\n \"name\": \"key\",\n \"baseName\": \"key\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"operator\",\n \"baseName\": \"operator\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"values\",\n \"baseName\": \"values\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1LabelSelectorRequirement.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Lease defines a lease concept.\n*/\nexport class V1Lease {\n static getAttributeTypeMap() {\n return V1Lease.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Lease.discriminator = undefined;\nV1Lease.mapping = undefined;\nV1Lease.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1LeaseSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Lease.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LeaseList is a list of Lease objects.\n*/\nexport class V1LeaseList {\n static getAttributeTypeMap() {\n return V1LeaseList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1LeaseList.discriminator = undefined;\nV1LeaseList.mapping = undefined;\nV1LeaseList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1LeaseList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LeaseSpec is a specification of a Lease.\n*/\nexport class V1LeaseSpec {\n static getAttributeTypeMap() {\n return V1LeaseSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1LeaseSpec.discriminator = undefined;\nV1LeaseSpec.mapping = undefined;\nV1LeaseSpec.attributeTypeMap = [\n {\n \"name\": \"acquireTime\",\n \"baseName\": \"acquireTime\",\n \"type\": \"V1MicroTime\",\n \"format\": \"date-time-micro\"\n },\n {\n \"name\": \"holderIdentity\",\n \"baseName\": \"holderIdentity\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"leaseDurationSeconds\",\n \"baseName\": \"leaseDurationSeconds\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"leaseTransitions\",\n \"baseName\": \"leaseTransitions\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"preferredHolder\",\n \"baseName\": \"preferredHolder\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"renewTime\",\n \"baseName\": \"renewTime\",\n \"type\": \"V1MicroTime\",\n \"format\": \"date-time-micro\"\n },\n {\n \"name\": \"strategy\",\n \"baseName\": \"strategy\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1LeaseSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.\n*/\nexport class V1Lifecycle {\n static getAttributeTypeMap() {\n return V1Lifecycle.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Lifecycle.discriminator = undefined;\nV1Lifecycle.mapping = undefined;\nV1Lifecycle.attributeTypeMap = [\n {\n \"name\": \"postStart\",\n \"baseName\": \"postStart\",\n \"type\": \"V1LifecycleHandler\",\n \"format\": \"\"\n },\n {\n \"name\": \"preStop\",\n \"baseName\": \"preStop\",\n \"type\": \"V1LifecycleHandler\",\n \"format\": \"\"\n },\n {\n \"name\": \"stopSignal\",\n \"baseName\": \"stopSignal\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Lifecycle.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.\n*/\nexport class V1LifecycleHandler {\n static getAttributeTypeMap() {\n return V1LifecycleHandler.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1LifecycleHandler.discriminator = undefined;\nV1LifecycleHandler.mapping = undefined;\nV1LifecycleHandler.attributeTypeMap = [\n {\n \"name\": \"exec\",\n \"baseName\": \"exec\",\n \"type\": \"V1ExecAction\",\n \"format\": \"\"\n },\n {\n \"name\": \"httpGet\",\n \"baseName\": \"httpGet\",\n \"type\": \"V1HTTPGetAction\",\n \"format\": \"\"\n },\n {\n \"name\": \"sleep\",\n \"baseName\": \"sleep\",\n \"type\": \"V1SleepAction\",\n \"format\": \"\"\n },\n {\n \"name\": \"tcpSocket\",\n \"baseName\": \"tcpSocket\",\n \"type\": \"V1TCPSocketAction\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1LifecycleHandler.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LimitRange sets resource usage limits for each kind of resource in a Namespace.\n*/\nexport class V1LimitRange {\n static getAttributeTypeMap() {\n return V1LimitRange.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1LimitRange.discriminator = undefined;\nV1LimitRange.mapping = undefined;\nV1LimitRange.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1LimitRangeSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1LimitRange.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LimitRangeItem defines a min/max usage limit for any resource that matches on kind.\n*/\nexport class V1LimitRangeItem {\n static getAttributeTypeMap() {\n return V1LimitRangeItem.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1LimitRangeItem.discriminator = undefined;\nV1LimitRangeItem.mapping = undefined;\nV1LimitRangeItem.attributeTypeMap = [\n {\n \"name\": \"_default\",\n \"baseName\": \"default\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"defaultRequest\",\n \"baseName\": \"defaultRequest\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"max\",\n \"baseName\": \"max\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"maxLimitRequestRatio\",\n \"baseName\": \"maxLimitRequestRatio\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"min\",\n \"baseName\": \"min\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1LimitRangeItem.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LimitRangeList is a list of LimitRange items.\n*/\nexport class V1LimitRangeList {\n static getAttributeTypeMap() {\n return V1LimitRangeList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1LimitRangeList.discriminator = undefined;\nV1LimitRangeList.mapping = undefined;\nV1LimitRangeList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1LimitRangeList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LimitRangeSpec defines a min/max usage limit for resources that match on kind.\n*/\nexport class V1LimitRangeSpec {\n static getAttributeTypeMap() {\n return V1LimitRangeSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1LimitRangeSpec.discriminator = undefined;\nV1LimitRangeSpec.mapping = undefined;\nV1LimitRangeSpec.attributeTypeMap = [\n {\n \"name\": \"limits\",\n \"baseName\": \"limits\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1LimitRangeSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LimitResponse defines how to handle requests that can not be executed right now.\n*/\nexport class V1LimitResponse {\n static getAttributeTypeMap() {\n return V1LimitResponse.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1LimitResponse.discriminator = undefined;\nV1LimitResponse.mapping = undefined;\nV1LimitResponse.attributeTypeMap = [\n {\n \"name\": \"queuing\",\n \"baseName\": \"queuing\",\n \"type\": \"V1QueuingConfiguration\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1LimitResponse.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues: - How are requests for this priority level limited? - What should be done with requests that exceed the limit?\n*/\nexport class V1LimitedPriorityLevelConfiguration {\n static getAttributeTypeMap() {\n return V1LimitedPriorityLevelConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1LimitedPriorityLevelConfiguration.discriminator = undefined;\nV1LimitedPriorityLevelConfiguration.mapping = undefined;\nV1LimitedPriorityLevelConfiguration.attributeTypeMap = [\n {\n \"name\": \"borrowingLimitPercent\",\n \"baseName\": \"borrowingLimitPercent\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"lendablePercent\",\n \"baseName\": \"lendablePercent\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"limitResponse\",\n \"baseName\": \"limitResponse\",\n \"type\": \"V1LimitResponse\",\n \"format\": \"\"\n },\n {\n \"name\": \"nominalConcurrencyShares\",\n \"baseName\": \"nominalConcurrencyShares\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1LimitedPriorityLevelConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LinuxContainerUser represents user identity information in Linux containers\n*/\nexport class V1LinuxContainerUser {\n static getAttributeTypeMap() {\n return V1LinuxContainerUser.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1LinuxContainerUser.discriminator = undefined;\nV1LinuxContainerUser.mapping = undefined;\nV1LinuxContainerUser.attributeTypeMap = [\n {\n \"name\": \"gid\",\n \"baseName\": \"gid\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"supplementalGroups\",\n \"baseName\": \"supplementalGroups\",\n \"type\": \"Array\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"uid\",\n \"baseName\": \"uid\",\n \"type\": \"number\",\n \"format\": \"int64\"\n }\n];\n//# sourceMappingURL=V1LinuxContainerUser.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.\n*/\nexport class V1ListMeta {\n static getAttributeTypeMap() {\n return V1ListMeta.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ListMeta.discriminator = undefined;\nV1ListMeta.mapping = undefined;\nV1ListMeta.attributeTypeMap = [\n {\n \"name\": \"_continue\",\n \"baseName\": \"continue\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"remainingItemCount\",\n \"baseName\": \"remainingItemCount\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"resourceVersion\",\n \"baseName\": \"resourceVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"selfLink\",\n \"baseName\": \"selfLink\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ListMeta.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.\n*/\nexport class V1LoadBalancerIngress {\n static getAttributeTypeMap() {\n return V1LoadBalancerIngress.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1LoadBalancerIngress.discriminator = undefined;\nV1LoadBalancerIngress.mapping = undefined;\nV1LoadBalancerIngress.attributeTypeMap = [\n {\n \"name\": \"hostname\",\n \"baseName\": \"hostname\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"ip\",\n \"baseName\": \"ip\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"ipMode\",\n \"baseName\": \"ipMode\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"ports\",\n \"baseName\": \"ports\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1LoadBalancerIngress.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LoadBalancerStatus represents the status of a load-balancer.\n*/\nexport class V1LoadBalancerStatus {\n static getAttributeTypeMap() {\n return V1LoadBalancerStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1LoadBalancerStatus.discriminator = undefined;\nV1LoadBalancerStatus.mapping = undefined;\nV1LoadBalancerStatus.attributeTypeMap = [\n {\n \"name\": \"ingress\",\n \"baseName\": \"ingress\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1LoadBalancerStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\n*/\nexport class V1LocalObjectReference {\n static getAttributeTypeMap() {\n return V1LocalObjectReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1LocalObjectReference.discriminator = undefined;\nV1LocalObjectReference.mapping = undefined;\nV1LocalObjectReference.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1LocalObjectReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.\n*/\nexport class V1LocalSubjectAccessReview {\n static getAttributeTypeMap() {\n return V1LocalSubjectAccessReview.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1LocalSubjectAccessReview.discriminator = undefined;\nV1LocalSubjectAccessReview.mapping = undefined;\nV1LocalSubjectAccessReview.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1SubjectAccessReviewSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1SubjectAccessReviewStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1LocalSubjectAccessReview.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Local represents directly-attached storage with node affinity\n*/\nexport class V1LocalVolumeSource {\n static getAttributeTypeMap() {\n return V1LocalVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1LocalVolumeSource.discriminator = undefined;\nV1LocalVolumeSource.mapping = undefined;\nV1LocalVolumeSource.attributeTypeMap = [\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"path\",\n \"baseName\": \"path\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1LocalVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.\n*/\nexport class V1ManagedFieldsEntry {\n static getAttributeTypeMap() {\n return V1ManagedFieldsEntry.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ManagedFieldsEntry.discriminator = undefined;\nV1ManagedFieldsEntry.mapping = undefined;\nV1ManagedFieldsEntry.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"fieldsType\",\n \"baseName\": \"fieldsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"fieldsV1\",\n \"baseName\": \"fieldsV1\",\n \"type\": \"any\",\n \"format\": \"\"\n },\n {\n \"name\": \"manager\",\n \"baseName\": \"manager\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"operation\",\n \"baseName\": \"operation\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"subresource\",\n \"baseName\": \"subresource\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"time\",\n \"baseName\": \"time\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n }\n];\n//# sourceMappingURL=V1ManagedFieldsEntry.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MatchCondition represents a condition which must by fulfilled for a request to be sent to a webhook.\n*/\nexport class V1MatchCondition {\n static getAttributeTypeMap() {\n return V1MatchCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1MatchCondition.discriminator = undefined;\nV1MatchCondition.mapping = undefined;\nV1MatchCondition.attributeTypeMap = [\n {\n \"name\": \"expression\",\n \"baseName\": \"expression\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1MatchCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n*/\nexport class V1MatchResources {\n static getAttributeTypeMap() {\n return V1MatchResources.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1MatchResources.discriminator = undefined;\nV1MatchResources.mapping = undefined;\nV1MatchResources.attributeTypeMap = [\n {\n \"name\": \"excludeResourceRules\",\n \"baseName\": \"excludeResourceRules\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"matchPolicy\",\n \"baseName\": \"matchPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespaceSelector\",\n \"baseName\": \"namespaceSelector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"objectSelector\",\n \"baseName\": \"objectSelector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceRules\",\n \"baseName\": \"resourceRules\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1MatchResources.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ModifyVolumeStatus represents the status object of ControllerModifyVolume operation\n*/\nexport class V1ModifyVolumeStatus {\n static getAttributeTypeMap() {\n return V1ModifyVolumeStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ModifyVolumeStatus.discriminator = undefined;\nV1ModifyVolumeStatus.mapping = undefined;\nV1ModifyVolumeStatus.attributeTypeMap = [\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"targetVolumeAttributesClassName\",\n \"baseName\": \"targetVolumeAttributesClassName\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ModifyVolumeStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MutatingWebhook describes an admission webhook and the resources and operations it applies to.\n*/\nexport class V1MutatingWebhook {\n static getAttributeTypeMap() {\n return V1MutatingWebhook.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1MutatingWebhook.discriminator = undefined;\nV1MutatingWebhook.mapping = undefined;\nV1MutatingWebhook.attributeTypeMap = [\n {\n \"name\": \"admissionReviewVersions\",\n \"baseName\": \"admissionReviewVersions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"clientConfig\",\n \"baseName\": \"clientConfig\",\n \"type\": \"AdmissionregistrationV1WebhookClientConfig\",\n \"format\": \"\"\n },\n {\n \"name\": \"failurePolicy\",\n \"baseName\": \"failurePolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"matchConditions\",\n \"baseName\": \"matchConditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"matchPolicy\",\n \"baseName\": \"matchPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespaceSelector\",\n \"baseName\": \"namespaceSelector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"objectSelector\",\n \"baseName\": \"objectSelector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"reinvocationPolicy\",\n \"baseName\": \"reinvocationPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"rules\",\n \"baseName\": \"rules\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"sideEffects\",\n \"baseName\": \"sideEffects\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"timeoutSeconds\",\n \"baseName\": \"timeoutSeconds\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1MutatingWebhook.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.\n*/\nexport class V1MutatingWebhookConfiguration {\n static getAttributeTypeMap() {\n return V1MutatingWebhookConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1MutatingWebhookConfiguration.discriminator = undefined;\nV1MutatingWebhookConfiguration.mapping = undefined;\nV1MutatingWebhookConfiguration.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"webhooks\",\n \"baseName\": \"webhooks\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1MutatingWebhookConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.\n*/\nexport class V1MutatingWebhookConfigurationList {\n static getAttributeTypeMap() {\n return V1MutatingWebhookConfigurationList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1MutatingWebhookConfigurationList.discriminator = undefined;\nV1MutatingWebhookConfigurationList.mapping = undefined;\nV1MutatingWebhookConfigurationList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1MutatingWebhookConfigurationList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.\n*/\nexport class V1NFSVolumeSource {\n static getAttributeTypeMap() {\n return V1NFSVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NFSVolumeSource.discriminator = undefined;\nV1NFSVolumeSource.mapping = undefined;\nV1NFSVolumeSource.attributeTypeMap = [\n {\n \"name\": \"path\",\n \"baseName\": \"path\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"server\",\n \"baseName\": \"server\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NFSVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.\n*/\nexport class V1NamedRuleWithOperations {\n static getAttributeTypeMap() {\n return V1NamedRuleWithOperations.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NamedRuleWithOperations.discriminator = undefined;\nV1NamedRuleWithOperations.mapping = undefined;\nV1NamedRuleWithOperations.attributeTypeMap = [\n {\n \"name\": \"apiGroups\",\n \"baseName\": \"apiGroups\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"apiVersions\",\n \"baseName\": \"apiVersions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"operations\",\n \"baseName\": \"operations\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceNames\",\n \"baseName\": \"resourceNames\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resources\",\n \"baseName\": \"resources\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"scope\",\n \"baseName\": \"scope\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NamedRuleWithOperations.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Namespace provides a scope for Names. Use of multiple namespaces is optional.\n*/\nexport class V1Namespace {\n static getAttributeTypeMap() {\n return V1Namespace.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Namespace.discriminator = undefined;\nV1Namespace.mapping = undefined;\nV1Namespace.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1NamespaceSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1NamespaceStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Namespace.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NamespaceCondition contains details about state of namespace.\n*/\nexport class V1NamespaceCondition {\n static getAttributeTypeMap() {\n return V1NamespaceCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NamespaceCondition.discriminator = undefined;\nV1NamespaceCondition.mapping = undefined;\nV1NamespaceCondition.attributeTypeMap = [\n {\n \"name\": \"lastTransitionTime\",\n \"baseName\": \"lastTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NamespaceCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NamespaceList is a list of Namespaces.\n*/\nexport class V1NamespaceList {\n static getAttributeTypeMap() {\n return V1NamespaceList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NamespaceList.discriminator = undefined;\nV1NamespaceList.mapping = undefined;\nV1NamespaceList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NamespaceList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NamespaceSpec describes the attributes on a Namespace.\n*/\nexport class V1NamespaceSpec {\n static getAttributeTypeMap() {\n return V1NamespaceSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NamespaceSpec.discriminator = undefined;\nV1NamespaceSpec.mapping = undefined;\nV1NamespaceSpec.attributeTypeMap = [\n {\n \"name\": \"finalizers\",\n \"baseName\": \"finalizers\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NamespaceSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NamespaceStatus is information about the current status of a Namespace.\n*/\nexport class V1NamespaceStatus {\n static getAttributeTypeMap() {\n return V1NamespaceStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NamespaceStatus.discriminator = undefined;\nV1NamespaceStatus.mapping = undefined;\nV1NamespaceStatus.attributeTypeMap = [\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"phase\",\n \"baseName\": \"phase\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NamespaceStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NetworkPolicy describes what network traffic is allowed for a set of Pods\n*/\nexport class V1NetworkPolicy {\n static getAttributeTypeMap() {\n return V1NetworkPolicy.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NetworkPolicy.discriminator = undefined;\nV1NetworkPolicy.mapping = undefined;\nV1NetworkPolicy.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1NetworkPolicySpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NetworkPolicy.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec\\'s podSelector. The traffic must match both ports and to. This type is beta-level in 1.8\n*/\nexport class V1NetworkPolicyEgressRule {\n static getAttributeTypeMap() {\n return V1NetworkPolicyEgressRule.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NetworkPolicyEgressRule.discriminator = undefined;\nV1NetworkPolicyEgressRule.mapping = undefined;\nV1NetworkPolicyEgressRule.attributeTypeMap = [\n {\n \"name\": \"ports\",\n \"baseName\": \"ports\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"to\",\n \"baseName\": \"to\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NetworkPolicyEgressRule.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods matched by a NetworkPolicySpec\\'s podSelector. The traffic must match both ports and from.\n*/\nexport class V1NetworkPolicyIngressRule {\n static getAttributeTypeMap() {\n return V1NetworkPolicyIngressRule.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NetworkPolicyIngressRule.discriminator = undefined;\nV1NetworkPolicyIngressRule.mapping = undefined;\nV1NetworkPolicyIngressRule.attributeTypeMap = [\n {\n \"name\": \"_from\",\n \"baseName\": \"from\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"ports\",\n \"baseName\": \"ports\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NetworkPolicyIngressRule.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NetworkPolicyList is a list of NetworkPolicy objects.\n*/\nexport class V1NetworkPolicyList {\n static getAttributeTypeMap() {\n return V1NetworkPolicyList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NetworkPolicyList.discriminator = undefined;\nV1NetworkPolicyList.mapping = undefined;\nV1NetworkPolicyList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NetworkPolicyList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed\n*/\nexport class V1NetworkPolicyPeer {\n static getAttributeTypeMap() {\n return V1NetworkPolicyPeer.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NetworkPolicyPeer.discriminator = undefined;\nV1NetworkPolicyPeer.mapping = undefined;\nV1NetworkPolicyPeer.attributeTypeMap = [\n {\n \"name\": \"ipBlock\",\n \"baseName\": \"ipBlock\",\n \"type\": \"V1IPBlock\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespaceSelector\",\n \"baseName\": \"namespaceSelector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"podSelector\",\n \"baseName\": \"podSelector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NetworkPolicyPeer.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NetworkPolicyPort describes a port to allow traffic on\n*/\nexport class V1NetworkPolicyPort {\n static getAttributeTypeMap() {\n return V1NetworkPolicyPort.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NetworkPolicyPort.discriminator = undefined;\nV1NetworkPolicyPort.mapping = undefined;\nV1NetworkPolicyPort.attributeTypeMap = [\n {\n \"name\": \"endPort\",\n \"baseName\": \"endPort\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"port\",\n \"baseName\": \"port\",\n \"type\": \"IntOrString\",\n \"format\": \"int-or-string\"\n },\n {\n \"name\": \"protocol\",\n \"baseName\": \"protocol\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NetworkPolicyPort.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NetworkPolicySpec provides the specification of a NetworkPolicy\n*/\nexport class V1NetworkPolicySpec {\n static getAttributeTypeMap() {\n return V1NetworkPolicySpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NetworkPolicySpec.discriminator = undefined;\nV1NetworkPolicySpec.mapping = undefined;\nV1NetworkPolicySpec.attributeTypeMap = [\n {\n \"name\": \"egress\",\n \"baseName\": \"egress\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"ingress\",\n \"baseName\": \"ingress\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"podSelector\",\n \"baseName\": \"podSelector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"policyTypes\",\n \"baseName\": \"policyTypes\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NetworkPolicySpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).\n*/\nexport class V1Node {\n static getAttributeTypeMap() {\n return V1Node.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Node.discriminator = undefined;\nV1Node.mapping = undefined;\nV1Node.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1NodeSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1NodeStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Node.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NodeAddress contains information for the node\\'s address.\n*/\nexport class V1NodeAddress {\n static getAttributeTypeMap() {\n return V1NodeAddress.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NodeAddress.discriminator = undefined;\nV1NodeAddress.mapping = undefined;\nV1NodeAddress.attributeTypeMap = [\n {\n \"name\": \"address\",\n \"baseName\": \"address\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NodeAddress.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Node affinity is a group of node affinity scheduling rules.\n*/\nexport class V1NodeAffinity {\n static getAttributeTypeMap() {\n return V1NodeAffinity.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NodeAffinity.discriminator = undefined;\nV1NodeAffinity.mapping = undefined;\nV1NodeAffinity.attributeTypeMap = [\n {\n \"name\": \"preferredDuringSchedulingIgnoredDuringExecution\",\n \"baseName\": \"preferredDuringSchedulingIgnoredDuringExecution\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"requiredDuringSchedulingIgnoredDuringExecution\",\n \"baseName\": \"requiredDuringSchedulingIgnoredDuringExecution\",\n \"type\": \"V1NodeSelector\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NodeAffinity.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NodeCondition contains condition information for a node.\n*/\nexport class V1NodeCondition {\n static getAttributeTypeMap() {\n return V1NodeCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NodeCondition.discriminator = undefined;\nV1NodeCondition.mapping = undefined;\nV1NodeCondition.attributeTypeMap = [\n {\n \"name\": \"lastHeartbeatTime\",\n \"baseName\": \"lastHeartbeatTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"lastTransitionTime\",\n \"baseName\": \"lastTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NodeCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. This API is deprecated since 1.22\n*/\nexport class V1NodeConfigSource {\n static getAttributeTypeMap() {\n return V1NodeConfigSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NodeConfigSource.discriminator = undefined;\nV1NodeConfigSource.mapping = undefined;\nV1NodeConfigSource.attributeTypeMap = [\n {\n \"name\": \"configMap\",\n \"baseName\": \"configMap\",\n \"type\": \"V1ConfigMapNodeConfigSource\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NodeConfigSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.\n*/\nexport class V1NodeConfigStatus {\n static getAttributeTypeMap() {\n return V1NodeConfigStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NodeConfigStatus.discriminator = undefined;\nV1NodeConfigStatus.mapping = undefined;\nV1NodeConfigStatus.attributeTypeMap = [\n {\n \"name\": \"active\",\n \"baseName\": \"active\",\n \"type\": \"V1NodeConfigSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"assigned\",\n \"baseName\": \"assigned\",\n \"type\": \"V1NodeConfigSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"error\",\n \"baseName\": \"error\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"lastKnownGood\",\n \"baseName\": \"lastKnownGood\",\n \"type\": \"V1NodeConfigSource\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NodeConfigStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NodeDaemonEndpoints lists ports opened by daemons running on the Node.\n*/\nexport class V1NodeDaemonEndpoints {\n static getAttributeTypeMap() {\n return V1NodeDaemonEndpoints.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NodeDaemonEndpoints.discriminator = undefined;\nV1NodeDaemonEndpoints.mapping = undefined;\nV1NodeDaemonEndpoints.attributeTypeMap = [\n {\n \"name\": \"kubeletEndpoint\",\n \"baseName\": \"kubeletEndpoint\",\n \"type\": \"V1DaemonEndpoint\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NodeDaemonEndpoints.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NodeFeatures describes the set of features implemented by the CRI implementation. The features contained in the NodeFeatures should depend only on the cri implementation independent of runtime handlers.\n*/\nexport class V1NodeFeatures {\n static getAttributeTypeMap() {\n return V1NodeFeatures.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NodeFeatures.discriminator = undefined;\nV1NodeFeatures.mapping = undefined;\nV1NodeFeatures.attributeTypeMap = [\n {\n \"name\": \"supplementalGroupsPolicy\",\n \"baseName\": \"supplementalGroupsPolicy\",\n \"type\": \"boolean\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NodeFeatures.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NodeList is the whole list of all Nodes which have been registered with master.\n*/\nexport class V1NodeList {\n static getAttributeTypeMap() {\n return V1NodeList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NodeList.discriminator = undefined;\nV1NodeList.mapping = undefined;\nV1NodeList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NodeList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NodeRuntimeHandler is a set of runtime handler information.\n*/\nexport class V1NodeRuntimeHandler {\n static getAttributeTypeMap() {\n return V1NodeRuntimeHandler.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NodeRuntimeHandler.discriminator = undefined;\nV1NodeRuntimeHandler.mapping = undefined;\nV1NodeRuntimeHandler.attributeTypeMap = [\n {\n \"name\": \"features\",\n \"baseName\": \"features\",\n \"type\": \"V1NodeRuntimeHandlerFeatures\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NodeRuntimeHandler.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NodeRuntimeHandlerFeatures is a set of features implemented by the runtime handler.\n*/\nexport class V1NodeRuntimeHandlerFeatures {\n static getAttributeTypeMap() {\n return V1NodeRuntimeHandlerFeatures.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NodeRuntimeHandlerFeatures.discriminator = undefined;\nV1NodeRuntimeHandlerFeatures.mapping = undefined;\nV1NodeRuntimeHandlerFeatures.attributeTypeMap = [\n {\n \"name\": \"recursiveReadOnlyMounts\",\n \"baseName\": \"recursiveReadOnlyMounts\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"userNamespaces\",\n \"baseName\": \"userNamespaces\",\n \"type\": \"boolean\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NodeRuntimeHandlerFeatures.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.\n*/\nexport class V1NodeSelector {\n static getAttributeTypeMap() {\n return V1NodeSelector.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NodeSelector.discriminator = undefined;\nV1NodeSelector.mapping = undefined;\nV1NodeSelector.attributeTypeMap = [\n {\n \"name\": \"nodeSelectorTerms\",\n \"baseName\": \"nodeSelectorTerms\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NodeSelector.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\n*/\nexport class V1NodeSelectorRequirement {\n static getAttributeTypeMap() {\n return V1NodeSelectorRequirement.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NodeSelectorRequirement.discriminator = undefined;\nV1NodeSelectorRequirement.mapping = undefined;\nV1NodeSelectorRequirement.attributeTypeMap = [\n {\n \"name\": \"key\",\n \"baseName\": \"key\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"operator\",\n \"baseName\": \"operator\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"values\",\n \"baseName\": \"values\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NodeSelectorRequirement.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\n*/\nexport class V1NodeSelectorTerm {\n static getAttributeTypeMap() {\n return V1NodeSelectorTerm.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NodeSelectorTerm.discriminator = undefined;\nV1NodeSelectorTerm.mapping = undefined;\nV1NodeSelectorTerm.attributeTypeMap = [\n {\n \"name\": \"matchExpressions\",\n \"baseName\": \"matchExpressions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"matchFields\",\n \"baseName\": \"matchFields\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NodeSelectorTerm.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NodeSpec describes the attributes that a node is created with.\n*/\nexport class V1NodeSpec {\n static getAttributeTypeMap() {\n return V1NodeSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NodeSpec.discriminator = undefined;\nV1NodeSpec.mapping = undefined;\nV1NodeSpec.attributeTypeMap = [\n {\n \"name\": \"configSource\",\n \"baseName\": \"configSource\",\n \"type\": \"V1NodeConfigSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"externalID\",\n \"baseName\": \"externalID\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"podCIDR\",\n \"baseName\": \"podCIDR\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"podCIDRs\",\n \"baseName\": \"podCIDRs\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"providerID\",\n \"baseName\": \"providerID\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"taints\",\n \"baseName\": \"taints\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"unschedulable\",\n \"baseName\": \"unschedulable\",\n \"type\": \"boolean\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NodeSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NodeStatus is information about the current status of a node.\n*/\nexport class V1NodeStatus {\n static getAttributeTypeMap() {\n return V1NodeStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NodeStatus.discriminator = undefined;\nV1NodeStatus.mapping = undefined;\nV1NodeStatus.attributeTypeMap = [\n {\n \"name\": \"addresses\",\n \"baseName\": \"addresses\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"allocatable\",\n \"baseName\": \"allocatable\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"capacity\",\n \"baseName\": \"capacity\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"config\",\n \"baseName\": \"config\",\n \"type\": \"V1NodeConfigStatus\",\n \"format\": \"\"\n },\n {\n \"name\": \"daemonEndpoints\",\n \"baseName\": \"daemonEndpoints\",\n \"type\": \"V1NodeDaemonEndpoints\",\n \"format\": \"\"\n },\n {\n \"name\": \"features\",\n \"baseName\": \"features\",\n \"type\": \"V1NodeFeatures\",\n \"format\": \"\"\n },\n {\n \"name\": \"images\",\n \"baseName\": \"images\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeInfo\",\n \"baseName\": \"nodeInfo\",\n \"type\": \"V1NodeSystemInfo\",\n \"format\": \"\"\n },\n {\n \"name\": \"phase\",\n \"baseName\": \"phase\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"runtimeHandlers\",\n \"baseName\": \"runtimeHandlers\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumesAttached\",\n \"baseName\": \"volumesAttached\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumesInUse\",\n \"baseName\": \"volumesInUse\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NodeStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NodeSwapStatus represents swap memory information.\n*/\nexport class V1NodeSwapStatus {\n static getAttributeTypeMap() {\n return V1NodeSwapStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NodeSwapStatus.discriminator = undefined;\nV1NodeSwapStatus.mapping = undefined;\nV1NodeSwapStatus.attributeTypeMap = [\n {\n \"name\": \"capacity\",\n \"baseName\": \"capacity\",\n \"type\": \"number\",\n \"format\": \"int64\"\n }\n];\n//# sourceMappingURL=V1NodeSwapStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NodeSystemInfo is a set of ids/uuids to uniquely identify the node.\n*/\nexport class V1NodeSystemInfo {\n static getAttributeTypeMap() {\n return V1NodeSystemInfo.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NodeSystemInfo.discriminator = undefined;\nV1NodeSystemInfo.mapping = undefined;\nV1NodeSystemInfo.attributeTypeMap = [\n {\n \"name\": \"architecture\",\n \"baseName\": \"architecture\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"bootID\",\n \"baseName\": \"bootID\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"containerRuntimeVersion\",\n \"baseName\": \"containerRuntimeVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kernelVersion\",\n \"baseName\": \"kernelVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kubeProxyVersion\",\n \"baseName\": \"kubeProxyVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kubeletVersion\",\n \"baseName\": \"kubeletVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"machineID\",\n \"baseName\": \"machineID\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"operatingSystem\",\n \"baseName\": \"operatingSystem\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"osImage\",\n \"baseName\": \"osImage\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"swap\",\n \"baseName\": \"swap\",\n \"type\": \"V1NodeSwapStatus\",\n \"format\": \"\"\n },\n {\n \"name\": \"systemUUID\",\n \"baseName\": \"systemUUID\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NodeSystemInfo.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\n*/\nexport class V1NonResourceAttributes {\n static getAttributeTypeMap() {\n return V1NonResourceAttributes.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NonResourceAttributes.discriminator = undefined;\nV1NonResourceAttributes.mapping = undefined;\nV1NonResourceAttributes.attributeTypeMap = [\n {\n \"name\": \"path\",\n \"baseName\": \"path\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"verb\",\n \"baseName\": \"verb\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NonResourceAttributes.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\n*/\nexport class V1NonResourcePolicyRule {\n static getAttributeTypeMap() {\n return V1NonResourcePolicyRule.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NonResourcePolicyRule.discriminator = undefined;\nV1NonResourcePolicyRule.mapping = undefined;\nV1NonResourcePolicyRule.attributeTypeMap = [\n {\n \"name\": \"nonResourceURLs\",\n \"baseName\": \"nonResourceURLs\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"verbs\",\n \"baseName\": \"verbs\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NonResourcePolicyRule.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NonResourceRule holds information that describes a rule for the non-resource\n*/\nexport class V1NonResourceRule {\n static getAttributeTypeMap() {\n return V1NonResourceRule.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1NonResourceRule.discriminator = undefined;\nV1NonResourceRule.mapping = undefined;\nV1NonResourceRule.attributeTypeMap = [\n {\n \"name\": \"nonResourceURLs\",\n \"baseName\": \"nonResourceURLs\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"verbs\",\n \"baseName\": \"verbs\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1NonResourceRule.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ObjectFieldSelector selects an APIVersioned field of an object.\n*/\nexport class V1ObjectFieldSelector {\n static getAttributeTypeMap() {\n return V1ObjectFieldSelector.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ObjectFieldSelector.discriminator = undefined;\nV1ObjectFieldSelector.mapping = undefined;\nV1ObjectFieldSelector.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"fieldPath\",\n \"baseName\": \"fieldPath\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ObjectFieldSelector.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.\n*/\nexport class V1ObjectMeta {\n static getAttributeTypeMap() {\n return V1ObjectMeta.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ObjectMeta.discriminator = undefined;\nV1ObjectMeta.mapping = undefined;\nV1ObjectMeta.attributeTypeMap = [\n {\n \"name\": \"annotations\",\n \"baseName\": \"annotations\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"creationTimestamp\",\n \"baseName\": \"creationTimestamp\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"deletionGracePeriodSeconds\",\n \"baseName\": \"deletionGracePeriodSeconds\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"deletionTimestamp\",\n \"baseName\": \"deletionTimestamp\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"finalizers\",\n \"baseName\": \"finalizers\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"generateName\",\n \"baseName\": \"generateName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"generation\",\n \"baseName\": \"generation\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"labels\",\n \"baseName\": \"labels\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"managedFields\",\n \"baseName\": \"managedFields\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespace\",\n \"baseName\": \"namespace\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"ownerReferences\",\n \"baseName\": \"ownerReferences\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceVersion\",\n \"baseName\": \"resourceVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"selfLink\",\n \"baseName\": \"selfLink\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"uid\",\n \"baseName\": \"uid\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ObjectMeta.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ObjectReference contains enough information to let you inspect or modify the referred object.\n*/\nexport class V1ObjectReference {\n static getAttributeTypeMap() {\n return V1ObjectReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ObjectReference.discriminator = undefined;\nV1ObjectReference.mapping = undefined;\nV1ObjectReference.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"fieldPath\",\n \"baseName\": \"fieldPath\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespace\",\n \"baseName\": \"namespace\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceVersion\",\n \"baseName\": \"resourceVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"uid\",\n \"baseName\": \"uid\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ObjectReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Overhead structure represents the resource overhead associated with running a pod.\n*/\nexport class V1Overhead {\n static getAttributeTypeMap() {\n return V1Overhead.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Overhead.discriminator = undefined;\nV1Overhead.mapping = undefined;\nV1Overhead.attributeTypeMap = [\n {\n \"name\": \"podFixed\",\n \"baseName\": \"podFixed\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Overhead.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field.\n*/\nexport class V1OwnerReference {\n static getAttributeTypeMap() {\n return V1OwnerReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1OwnerReference.discriminator = undefined;\nV1OwnerReference.mapping = undefined;\nV1OwnerReference.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"blockOwnerDeletion\",\n \"baseName\": \"blockOwnerDeletion\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"controller\",\n \"baseName\": \"controller\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"uid\",\n \"baseName\": \"uid\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1OwnerReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ParamKind is a tuple of Group Kind and Version.\n*/\nexport class V1ParamKind {\n static getAttributeTypeMap() {\n return V1ParamKind.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ParamKind.discriminator = undefined;\nV1ParamKind.mapping = undefined;\nV1ParamKind.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ParamKind.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.\n*/\nexport class V1ParamRef {\n static getAttributeTypeMap() {\n return V1ParamRef.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ParamRef.discriminator = undefined;\nV1ParamRef.mapping = undefined;\nV1ParamRef.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespace\",\n \"baseName\": \"namespace\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"parameterNotFoundAction\",\n \"baseName\": \"parameterNotFoundAction\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"selector\",\n \"baseName\": \"selector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ParamRef.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ParentReference describes a reference to a parent object.\n*/\nexport class V1ParentReference {\n static getAttributeTypeMap() {\n return V1ParentReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ParentReference.discriminator = undefined;\nV1ParentReference.mapping = undefined;\nV1ParentReference.attributeTypeMap = [\n {\n \"name\": \"group\",\n \"baseName\": \"group\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespace\",\n \"baseName\": \"namespace\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resource\",\n \"baseName\": \"resource\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ParentReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\n*/\nexport class V1PersistentVolume {\n static getAttributeTypeMap() {\n return V1PersistentVolume.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PersistentVolume.discriminator = undefined;\nV1PersistentVolume.mapping = undefined;\nV1PersistentVolume.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1PersistentVolumeSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1PersistentVolumeStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PersistentVolume.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PersistentVolumeClaim is a user\\'s request for and claim to a persistent volume\n*/\nexport class V1PersistentVolumeClaim {\n static getAttributeTypeMap() {\n return V1PersistentVolumeClaim.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PersistentVolumeClaim.discriminator = undefined;\nV1PersistentVolumeClaim.mapping = undefined;\nV1PersistentVolumeClaim.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1PersistentVolumeClaimSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1PersistentVolumeClaimStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PersistentVolumeClaim.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PersistentVolumeClaimCondition contains details about state of pvc\n*/\nexport class V1PersistentVolumeClaimCondition {\n static getAttributeTypeMap() {\n return V1PersistentVolumeClaimCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PersistentVolumeClaimCondition.discriminator = undefined;\nV1PersistentVolumeClaimCondition.mapping = undefined;\nV1PersistentVolumeClaimCondition.attributeTypeMap = [\n {\n \"name\": \"lastProbeTime\",\n \"baseName\": \"lastProbeTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"lastTransitionTime\",\n \"baseName\": \"lastTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PersistentVolumeClaimCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PersistentVolumeClaimList is a list of PersistentVolumeClaim items.\n*/\nexport class V1PersistentVolumeClaimList {\n static getAttributeTypeMap() {\n return V1PersistentVolumeClaimList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PersistentVolumeClaimList.discriminator = undefined;\nV1PersistentVolumeClaimList.mapping = undefined;\nV1PersistentVolumeClaimList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PersistentVolumeClaimList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes\n*/\nexport class V1PersistentVolumeClaimSpec {\n static getAttributeTypeMap() {\n return V1PersistentVolumeClaimSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PersistentVolumeClaimSpec.discriminator = undefined;\nV1PersistentVolumeClaimSpec.mapping = undefined;\nV1PersistentVolumeClaimSpec.attributeTypeMap = [\n {\n \"name\": \"accessModes\",\n \"baseName\": \"accessModes\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"dataSource\",\n \"baseName\": \"dataSource\",\n \"type\": \"V1TypedLocalObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"dataSourceRef\",\n \"baseName\": \"dataSourceRef\",\n \"type\": \"V1TypedObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"resources\",\n \"baseName\": \"resources\",\n \"type\": \"V1VolumeResourceRequirements\",\n \"format\": \"\"\n },\n {\n \"name\": \"selector\",\n \"baseName\": \"selector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"storageClassName\",\n \"baseName\": \"storageClassName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeAttributesClassName\",\n \"baseName\": \"volumeAttributesClassName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeMode\",\n \"baseName\": \"volumeMode\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeName\",\n \"baseName\": \"volumeName\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PersistentVolumeClaimSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PersistentVolumeClaimStatus is the current status of a persistent volume claim.\n*/\nexport class V1PersistentVolumeClaimStatus {\n static getAttributeTypeMap() {\n return V1PersistentVolumeClaimStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PersistentVolumeClaimStatus.discriminator = undefined;\nV1PersistentVolumeClaimStatus.mapping = undefined;\nV1PersistentVolumeClaimStatus.attributeTypeMap = [\n {\n \"name\": \"accessModes\",\n \"baseName\": \"accessModes\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"allocatedResourceStatuses\",\n \"baseName\": \"allocatedResourceStatuses\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"allocatedResources\",\n \"baseName\": \"allocatedResources\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"capacity\",\n \"baseName\": \"capacity\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"currentVolumeAttributesClassName\",\n \"baseName\": \"currentVolumeAttributesClassName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"modifyVolumeStatus\",\n \"baseName\": \"modifyVolumeStatus\",\n \"type\": \"V1ModifyVolumeStatus\",\n \"format\": \"\"\n },\n {\n \"name\": \"phase\",\n \"baseName\": \"phase\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PersistentVolumeClaimStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.\n*/\nexport class V1PersistentVolumeClaimTemplate {\n static getAttributeTypeMap() {\n return V1PersistentVolumeClaimTemplate.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PersistentVolumeClaimTemplate.discriminator = undefined;\nV1PersistentVolumeClaimTemplate.mapping = undefined;\nV1PersistentVolumeClaimTemplate.attributeTypeMap = [\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1PersistentVolumeClaimSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PersistentVolumeClaimTemplate.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PersistentVolumeClaimVolumeSource references the user\\'s PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).\n*/\nexport class V1PersistentVolumeClaimVolumeSource {\n static getAttributeTypeMap() {\n return V1PersistentVolumeClaimVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PersistentVolumeClaimVolumeSource.discriminator = undefined;\nV1PersistentVolumeClaimVolumeSource.mapping = undefined;\nV1PersistentVolumeClaimVolumeSource.attributeTypeMap = [\n {\n \"name\": \"claimName\",\n \"baseName\": \"claimName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PersistentVolumeClaimVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PersistentVolumeList is a list of PersistentVolume items.\n*/\nexport class V1PersistentVolumeList {\n static getAttributeTypeMap() {\n return V1PersistentVolumeList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PersistentVolumeList.discriminator = undefined;\nV1PersistentVolumeList.mapping = undefined;\nV1PersistentVolumeList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PersistentVolumeList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PersistentVolumeSpec is the specification of a persistent volume.\n*/\nexport class V1PersistentVolumeSpec {\n static getAttributeTypeMap() {\n return V1PersistentVolumeSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PersistentVolumeSpec.discriminator = undefined;\nV1PersistentVolumeSpec.mapping = undefined;\nV1PersistentVolumeSpec.attributeTypeMap = [\n {\n \"name\": \"accessModes\",\n \"baseName\": \"accessModes\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"awsElasticBlockStore\",\n \"baseName\": \"awsElasticBlockStore\",\n \"type\": \"V1AWSElasticBlockStoreVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"azureDisk\",\n \"baseName\": \"azureDisk\",\n \"type\": \"V1AzureDiskVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"azureFile\",\n \"baseName\": \"azureFile\",\n \"type\": \"V1AzureFilePersistentVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"capacity\",\n \"baseName\": \"capacity\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"cephfs\",\n \"baseName\": \"cephfs\",\n \"type\": \"V1CephFSPersistentVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"cinder\",\n \"baseName\": \"cinder\",\n \"type\": \"V1CinderPersistentVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"claimRef\",\n \"baseName\": \"claimRef\",\n \"type\": \"V1ObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"csi\",\n \"baseName\": \"csi\",\n \"type\": \"V1CSIPersistentVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"fc\",\n \"baseName\": \"fc\",\n \"type\": \"V1FCVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"flexVolume\",\n \"baseName\": \"flexVolume\",\n \"type\": \"V1FlexPersistentVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"flocker\",\n \"baseName\": \"flocker\",\n \"type\": \"V1FlockerVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"gcePersistentDisk\",\n \"baseName\": \"gcePersistentDisk\",\n \"type\": \"V1GCEPersistentDiskVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"glusterfs\",\n \"baseName\": \"glusterfs\",\n \"type\": \"V1GlusterfsPersistentVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"hostPath\",\n \"baseName\": \"hostPath\",\n \"type\": \"V1HostPathVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"iscsi\",\n \"baseName\": \"iscsi\",\n \"type\": \"V1ISCSIPersistentVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"local\",\n \"baseName\": \"local\",\n \"type\": \"V1LocalVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"mountOptions\",\n \"baseName\": \"mountOptions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"nfs\",\n \"baseName\": \"nfs\",\n \"type\": \"V1NFSVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeAffinity\",\n \"baseName\": \"nodeAffinity\",\n \"type\": \"V1VolumeNodeAffinity\",\n \"format\": \"\"\n },\n {\n \"name\": \"persistentVolumeReclaimPolicy\",\n \"baseName\": \"persistentVolumeReclaimPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"photonPersistentDisk\",\n \"baseName\": \"photonPersistentDisk\",\n \"type\": \"V1PhotonPersistentDiskVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"portworxVolume\",\n \"baseName\": \"portworxVolume\",\n \"type\": \"V1PortworxVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"quobyte\",\n \"baseName\": \"quobyte\",\n \"type\": \"V1QuobyteVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"rbd\",\n \"baseName\": \"rbd\",\n \"type\": \"V1RBDPersistentVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"scaleIO\",\n \"baseName\": \"scaleIO\",\n \"type\": \"V1ScaleIOPersistentVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"storageClassName\",\n \"baseName\": \"storageClassName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"storageos\",\n \"baseName\": \"storageos\",\n \"type\": \"V1StorageOSPersistentVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeAttributesClassName\",\n \"baseName\": \"volumeAttributesClassName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeMode\",\n \"baseName\": \"volumeMode\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"vsphereVolume\",\n \"baseName\": \"vsphereVolume\",\n \"type\": \"V1VsphereVirtualDiskVolumeSource\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PersistentVolumeSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PersistentVolumeStatus is the current status of a persistent volume.\n*/\nexport class V1PersistentVolumeStatus {\n static getAttributeTypeMap() {\n return V1PersistentVolumeStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PersistentVolumeStatus.discriminator = undefined;\nV1PersistentVolumeStatus.mapping = undefined;\nV1PersistentVolumeStatus.attributeTypeMap = [\n {\n \"name\": \"lastPhaseTransitionTime\",\n \"baseName\": \"lastPhaseTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"phase\",\n \"baseName\": \"phase\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PersistentVolumeStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a Photon Controller persistent disk resource.\n*/\nexport class V1PhotonPersistentDiskVolumeSource {\n static getAttributeTypeMap() {\n return V1PhotonPersistentDiskVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PhotonPersistentDiskVolumeSource.discriminator = undefined;\nV1PhotonPersistentDiskVolumeSource.mapping = undefined;\nV1PhotonPersistentDiskVolumeSource.attributeTypeMap = [\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"pdID\",\n \"baseName\": \"pdID\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PhotonPersistentDiskVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.\n*/\nexport class V1Pod {\n static getAttributeTypeMap() {\n return V1Pod.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Pod.discriminator = undefined;\nV1Pod.mapping = undefined;\nV1Pod.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1PodSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1PodStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Pod.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Pod affinity is a group of inter pod affinity scheduling rules.\n*/\nexport class V1PodAffinity {\n static getAttributeTypeMap() {\n return V1PodAffinity.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodAffinity.discriminator = undefined;\nV1PodAffinity.mapping = undefined;\nV1PodAffinity.attributeTypeMap = [\n {\n \"name\": \"preferredDuringSchedulingIgnoredDuringExecution\",\n \"baseName\": \"preferredDuringSchedulingIgnoredDuringExecution\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"requiredDuringSchedulingIgnoredDuringExecution\",\n \"baseName\": \"requiredDuringSchedulingIgnoredDuringExecution\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodAffinity.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running\n*/\nexport class V1PodAffinityTerm {\n static getAttributeTypeMap() {\n return V1PodAffinityTerm.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodAffinityTerm.discriminator = undefined;\nV1PodAffinityTerm.mapping = undefined;\nV1PodAffinityTerm.attributeTypeMap = [\n {\n \"name\": \"labelSelector\",\n \"baseName\": \"labelSelector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"matchLabelKeys\",\n \"baseName\": \"matchLabelKeys\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"mismatchLabelKeys\",\n \"baseName\": \"mismatchLabelKeys\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespaceSelector\",\n \"baseName\": \"namespaceSelector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespaces\",\n \"baseName\": \"namespaces\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"topologyKey\",\n \"baseName\": \"topologyKey\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodAffinityTerm.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Pod anti affinity is a group of inter pod anti affinity scheduling rules.\n*/\nexport class V1PodAntiAffinity {\n static getAttributeTypeMap() {\n return V1PodAntiAffinity.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodAntiAffinity.discriminator = undefined;\nV1PodAntiAffinity.mapping = undefined;\nV1PodAntiAffinity.attributeTypeMap = [\n {\n \"name\": \"preferredDuringSchedulingIgnoredDuringExecution\",\n \"baseName\": \"preferredDuringSchedulingIgnoredDuringExecution\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"requiredDuringSchedulingIgnoredDuringExecution\",\n \"baseName\": \"requiredDuringSchedulingIgnoredDuringExecution\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodAntiAffinity.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodCondition contains details for the current condition of this pod.\n*/\nexport class V1PodCondition {\n static getAttributeTypeMap() {\n return V1PodCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodCondition.discriminator = undefined;\nV1PodCondition.mapping = undefined;\nV1PodCondition.attributeTypeMap = [\n {\n \"name\": \"lastProbeTime\",\n \"baseName\": \"lastProbeTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"lastTransitionTime\",\n \"baseName\": \"lastTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"observedGeneration\",\n \"baseName\": \"observedGeneration\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.\n*/\nexport class V1PodDNSConfig {\n static getAttributeTypeMap() {\n return V1PodDNSConfig.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodDNSConfig.discriminator = undefined;\nV1PodDNSConfig.mapping = undefined;\nV1PodDNSConfig.attributeTypeMap = [\n {\n \"name\": \"nameservers\",\n \"baseName\": \"nameservers\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"options\",\n \"baseName\": \"options\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"searches\",\n \"baseName\": \"searches\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodDNSConfig.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodDNSConfigOption defines DNS resolver options of a pod.\n*/\nexport class V1PodDNSConfigOption {\n static getAttributeTypeMap() {\n return V1PodDNSConfigOption.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodDNSConfigOption.discriminator = undefined;\nV1PodDNSConfigOption.mapping = undefined;\nV1PodDNSConfigOption.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodDNSConfigOption.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods\n*/\nexport class V1PodDisruptionBudget {\n static getAttributeTypeMap() {\n return V1PodDisruptionBudget.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodDisruptionBudget.discriminator = undefined;\nV1PodDisruptionBudget.mapping = undefined;\nV1PodDisruptionBudget.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1PodDisruptionBudgetSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1PodDisruptionBudgetStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodDisruptionBudget.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodDisruptionBudgetList is a collection of PodDisruptionBudgets.\n*/\nexport class V1PodDisruptionBudgetList {\n static getAttributeTypeMap() {\n return V1PodDisruptionBudgetList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodDisruptionBudgetList.discriminator = undefined;\nV1PodDisruptionBudgetList.mapping = undefined;\nV1PodDisruptionBudgetList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodDisruptionBudgetList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.\n*/\nexport class V1PodDisruptionBudgetSpec {\n static getAttributeTypeMap() {\n return V1PodDisruptionBudgetSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodDisruptionBudgetSpec.discriminator = undefined;\nV1PodDisruptionBudgetSpec.mapping = undefined;\nV1PodDisruptionBudgetSpec.attributeTypeMap = [\n {\n \"name\": \"maxUnavailable\",\n \"baseName\": \"maxUnavailable\",\n \"type\": \"IntOrString\",\n \"format\": \"int-or-string\"\n },\n {\n \"name\": \"minAvailable\",\n \"baseName\": \"minAvailable\",\n \"type\": \"IntOrString\",\n \"format\": \"int-or-string\"\n },\n {\n \"name\": \"selector\",\n \"baseName\": \"selector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"unhealthyPodEvictionPolicy\",\n \"baseName\": \"unhealthyPodEvictionPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodDisruptionBudgetSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.\n*/\nexport class V1PodDisruptionBudgetStatus {\n static getAttributeTypeMap() {\n return V1PodDisruptionBudgetStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodDisruptionBudgetStatus.discriminator = undefined;\nV1PodDisruptionBudgetStatus.mapping = undefined;\nV1PodDisruptionBudgetStatus.attributeTypeMap = [\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"currentHealthy\",\n \"baseName\": \"currentHealthy\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"desiredHealthy\",\n \"baseName\": \"desiredHealthy\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"disruptedPods\",\n \"baseName\": \"disruptedPods\",\n \"type\": \"{ [key: string]: Date; }\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"disruptionsAllowed\",\n \"baseName\": \"disruptionsAllowed\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"expectedPods\",\n \"baseName\": \"expectedPods\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"observedGeneration\",\n \"baseName\": \"observedGeneration\",\n \"type\": \"number\",\n \"format\": \"int64\"\n }\n];\n//# sourceMappingURL=V1PodDisruptionBudgetStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodFailurePolicy describes how failed pods influence the backoffLimit.\n*/\nexport class V1PodFailurePolicy {\n static getAttributeTypeMap() {\n return V1PodFailurePolicy.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodFailurePolicy.discriminator = undefined;\nV1PodFailurePolicy.mapping = undefined;\nV1PodFailurePolicy.attributeTypeMap = [\n {\n \"name\": \"rules\",\n \"baseName\": \"rules\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodFailurePolicy.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodFailurePolicyOnExitCodesRequirement describes the requirement for handling a failed pod based on its container exit codes. In particular, it lookups the .state.terminated.exitCode for each app container and init container status, represented by the .status.containerStatuses and .status.initContainerStatuses fields in the Pod status, respectively. Containers completed with success (exit code 0) are excluded from the requirement check.\n*/\nexport class V1PodFailurePolicyOnExitCodesRequirement {\n static getAttributeTypeMap() {\n return V1PodFailurePolicyOnExitCodesRequirement.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodFailurePolicyOnExitCodesRequirement.discriminator = undefined;\nV1PodFailurePolicyOnExitCodesRequirement.mapping = undefined;\nV1PodFailurePolicyOnExitCodesRequirement.attributeTypeMap = [\n {\n \"name\": \"containerName\",\n \"baseName\": \"containerName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"operator\",\n \"baseName\": \"operator\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"values\",\n \"baseName\": \"values\",\n \"type\": \"Array\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1PodFailurePolicyOnExitCodesRequirement.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodFailurePolicyOnPodConditionsPattern describes a pattern for matching an actual pod condition type.\n*/\nexport class V1PodFailurePolicyOnPodConditionsPattern {\n static getAttributeTypeMap() {\n return V1PodFailurePolicyOnPodConditionsPattern.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodFailurePolicyOnPodConditionsPattern.discriminator = undefined;\nV1PodFailurePolicyOnPodConditionsPattern.mapping = undefined;\nV1PodFailurePolicyOnPodConditionsPattern.attributeTypeMap = [\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodFailurePolicyOnPodConditionsPattern.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodFailurePolicyRule describes how a pod failure is handled when the requirements are met. One of onExitCodes and onPodConditions, but not both, can be used in each rule.\n*/\nexport class V1PodFailurePolicyRule {\n static getAttributeTypeMap() {\n return V1PodFailurePolicyRule.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodFailurePolicyRule.discriminator = undefined;\nV1PodFailurePolicyRule.mapping = undefined;\nV1PodFailurePolicyRule.attributeTypeMap = [\n {\n \"name\": \"action\",\n \"baseName\": \"action\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"onExitCodes\",\n \"baseName\": \"onExitCodes\",\n \"type\": \"V1PodFailurePolicyOnExitCodesRequirement\",\n \"format\": \"\"\n },\n {\n \"name\": \"onPodConditions\",\n \"baseName\": \"onPodConditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodFailurePolicyRule.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodIP represents a single IP address allocated to the pod.\n*/\nexport class V1PodIP {\n static getAttributeTypeMap() {\n return V1PodIP.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodIP.discriminator = undefined;\nV1PodIP.mapping = undefined;\nV1PodIP.attributeTypeMap = [\n {\n \"name\": \"ip\",\n \"baseName\": \"ip\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodIP.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodList is a list of Pods.\n*/\nexport class V1PodList {\n static getAttributeTypeMap() {\n return V1PodList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodList.discriminator = undefined;\nV1PodList.mapping = undefined;\nV1PodList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodOS defines the OS parameters of a pod.\n*/\nexport class V1PodOS {\n static getAttributeTypeMap() {\n return V1PodOS.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodOS.discriminator = undefined;\nV1PodOS.mapping = undefined;\nV1PodOS.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodOS.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodReadinessGate contains the reference to a pod condition\n*/\nexport class V1PodReadinessGate {\n static getAttributeTypeMap() {\n return V1PodReadinessGate.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodReadinessGate.discriminator = undefined;\nV1PodReadinessGate.mapping = undefined;\nV1PodReadinessGate.attributeTypeMap = [\n {\n \"name\": \"conditionType\",\n \"baseName\": \"conditionType\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodReadinessGate.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodResourceClaim references exactly one ResourceClaim, either directly or by naming a ResourceClaimTemplate which is then turned into a ResourceClaim for the pod. It adds a name to it that uniquely identifies the ResourceClaim inside the Pod. Containers that need access to the ResourceClaim reference it with this name.\n*/\nexport class V1PodResourceClaim {\n static getAttributeTypeMap() {\n return V1PodResourceClaim.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodResourceClaim.discriminator = undefined;\nV1PodResourceClaim.mapping = undefined;\nV1PodResourceClaim.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceClaimName\",\n \"baseName\": \"resourceClaimName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceClaimTemplateName\",\n \"baseName\": \"resourceClaimTemplateName\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodResourceClaim.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodResourceClaimStatus is stored in the PodStatus for each PodResourceClaim which references a ResourceClaimTemplate. It stores the generated name for the corresponding ResourceClaim.\n*/\nexport class V1PodResourceClaimStatus {\n static getAttributeTypeMap() {\n return V1PodResourceClaimStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodResourceClaimStatus.discriminator = undefined;\nV1PodResourceClaimStatus.mapping = undefined;\nV1PodResourceClaimStatus.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceClaimName\",\n \"baseName\": \"resourceClaimName\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodResourceClaimStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodSchedulingGate is associated to a Pod to guard its scheduling.\n*/\nexport class V1PodSchedulingGate {\n static getAttributeTypeMap() {\n return V1PodSchedulingGate.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodSchedulingGate.discriminator = undefined;\nV1PodSchedulingGate.mapping = undefined;\nV1PodSchedulingGate.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodSchedulingGate.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.\n*/\nexport class V1PodSecurityContext {\n static getAttributeTypeMap() {\n return V1PodSecurityContext.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodSecurityContext.discriminator = undefined;\nV1PodSecurityContext.mapping = undefined;\nV1PodSecurityContext.attributeTypeMap = [\n {\n \"name\": \"appArmorProfile\",\n \"baseName\": \"appArmorProfile\",\n \"type\": \"V1AppArmorProfile\",\n \"format\": \"\"\n },\n {\n \"name\": \"fsGroup\",\n \"baseName\": \"fsGroup\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"fsGroupChangePolicy\",\n \"baseName\": \"fsGroupChangePolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"runAsGroup\",\n \"baseName\": \"runAsGroup\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"runAsNonRoot\",\n \"baseName\": \"runAsNonRoot\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"runAsUser\",\n \"baseName\": \"runAsUser\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"seLinuxChangePolicy\",\n \"baseName\": \"seLinuxChangePolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"seLinuxOptions\",\n \"baseName\": \"seLinuxOptions\",\n \"type\": \"V1SELinuxOptions\",\n \"format\": \"\"\n },\n {\n \"name\": \"seccompProfile\",\n \"baseName\": \"seccompProfile\",\n \"type\": \"V1SeccompProfile\",\n \"format\": \"\"\n },\n {\n \"name\": \"supplementalGroups\",\n \"baseName\": \"supplementalGroups\",\n \"type\": \"Array\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"supplementalGroupsPolicy\",\n \"baseName\": \"supplementalGroupsPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"sysctls\",\n \"baseName\": \"sysctls\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"windowsOptions\",\n \"baseName\": \"windowsOptions\",\n \"type\": \"V1WindowsSecurityContextOptions\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodSecurityContext.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodSpec is a description of a pod.\n*/\nexport class V1PodSpec {\n static getAttributeTypeMap() {\n return V1PodSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodSpec.discriminator = undefined;\nV1PodSpec.mapping = undefined;\nV1PodSpec.attributeTypeMap = [\n {\n \"name\": \"activeDeadlineSeconds\",\n \"baseName\": \"activeDeadlineSeconds\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"affinity\",\n \"baseName\": \"affinity\",\n \"type\": \"V1Affinity\",\n \"format\": \"\"\n },\n {\n \"name\": \"automountServiceAccountToken\",\n \"baseName\": \"automountServiceAccountToken\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"containers\",\n \"baseName\": \"containers\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"dnsConfig\",\n \"baseName\": \"dnsConfig\",\n \"type\": \"V1PodDNSConfig\",\n \"format\": \"\"\n },\n {\n \"name\": \"dnsPolicy\",\n \"baseName\": \"dnsPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"enableServiceLinks\",\n \"baseName\": \"enableServiceLinks\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"ephemeralContainers\",\n \"baseName\": \"ephemeralContainers\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"hostAliases\",\n \"baseName\": \"hostAliases\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"hostIPC\",\n \"baseName\": \"hostIPC\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"hostNetwork\",\n \"baseName\": \"hostNetwork\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"hostPID\",\n \"baseName\": \"hostPID\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"hostUsers\",\n \"baseName\": \"hostUsers\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"hostname\",\n \"baseName\": \"hostname\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"imagePullSecrets\",\n \"baseName\": \"imagePullSecrets\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"initContainers\",\n \"baseName\": \"initContainers\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeName\",\n \"baseName\": \"nodeName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeSelector\",\n \"baseName\": \"nodeSelector\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"os\",\n \"baseName\": \"os\",\n \"type\": \"V1PodOS\",\n \"format\": \"\"\n },\n {\n \"name\": \"overhead\",\n \"baseName\": \"overhead\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"preemptionPolicy\",\n \"baseName\": \"preemptionPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"priority\",\n \"baseName\": \"priority\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"priorityClassName\",\n \"baseName\": \"priorityClassName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readinessGates\",\n \"baseName\": \"readinessGates\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceClaims\",\n \"baseName\": \"resourceClaims\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resources\",\n \"baseName\": \"resources\",\n \"type\": \"V1ResourceRequirements\",\n \"format\": \"\"\n },\n {\n \"name\": \"restartPolicy\",\n \"baseName\": \"restartPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"runtimeClassName\",\n \"baseName\": \"runtimeClassName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"schedulerName\",\n \"baseName\": \"schedulerName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"schedulingGates\",\n \"baseName\": \"schedulingGates\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"securityContext\",\n \"baseName\": \"securityContext\",\n \"type\": \"V1PodSecurityContext\",\n \"format\": \"\"\n },\n {\n \"name\": \"serviceAccount\",\n \"baseName\": \"serviceAccount\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"serviceAccountName\",\n \"baseName\": \"serviceAccountName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"setHostnameAsFQDN\",\n \"baseName\": \"setHostnameAsFQDN\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"shareProcessNamespace\",\n \"baseName\": \"shareProcessNamespace\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"subdomain\",\n \"baseName\": \"subdomain\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"terminationGracePeriodSeconds\",\n \"baseName\": \"terminationGracePeriodSeconds\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"tolerations\",\n \"baseName\": \"tolerations\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"topologySpreadConstraints\",\n \"baseName\": \"topologySpreadConstraints\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumes\",\n \"baseName\": \"volumes\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.\n*/\nexport class V1PodStatus {\n static getAttributeTypeMap() {\n return V1PodStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodStatus.discriminator = undefined;\nV1PodStatus.mapping = undefined;\nV1PodStatus.attributeTypeMap = [\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"containerStatuses\",\n \"baseName\": \"containerStatuses\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"ephemeralContainerStatuses\",\n \"baseName\": \"ephemeralContainerStatuses\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"hostIP\",\n \"baseName\": \"hostIP\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"hostIPs\",\n \"baseName\": \"hostIPs\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"initContainerStatuses\",\n \"baseName\": \"initContainerStatuses\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nominatedNodeName\",\n \"baseName\": \"nominatedNodeName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"observedGeneration\",\n \"baseName\": \"observedGeneration\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"phase\",\n \"baseName\": \"phase\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"podIP\",\n \"baseName\": \"podIP\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"podIPs\",\n \"baseName\": \"podIPs\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"qosClass\",\n \"baseName\": \"qosClass\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resize\",\n \"baseName\": \"resize\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceClaimStatuses\",\n \"baseName\": \"resourceClaimStatuses\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"startTime\",\n \"baseName\": \"startTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n }\n];\n//# sourceMappingURL=V1PodStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodTemplate describes a template for creating copies of a predefined pod.\n*/\nexport class V1PodTemplate {\n static getAttributeTypeMap() {\n return V1PodTemplate.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodTemplate.discriminator = undefined;\nV1PodTemplate.mapping = undefined;\nV1PodTemplate.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"template\",\n \"baseName\": \"template\",\n \"type\": \"V1PodTemplateSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodTemplate.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodTemplateList is a list of PodTemplates.\n*/\nexport class V1PodTemplateList {\n static getAttributeTypeMap() {\n return V1PodTemplateList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodTemplateList.discriminator = undefined;\nV1PodTemplateList.mapping = undefined;\nV1PodTemplateList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodTemplateList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodTemplateSpec describes the data a pod should have when created from a template\n*/\nexport class V1PodTemplateSpec {\n static getAttributeTypeMap() {\n return V1PodTemplateSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PodTemplateSpec.discriminator = undefined;\nV1PodTemplateSpec.mapping = undefined;\nV1PodTemplateSpec.attributeTypeMap = [\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1PodSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PodTemplateSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.\n*/\nexport class V1PolicyRule {\n static getAttributeTypeMap() {\n return V1PolicyRule.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PolicyRule.discriminator = undefined;\nV1PolicyRule.mapping = undefined;\nV1PolicyRule.attributeTypeMap = [\n {\n \"name\": \"apiGroups\",\n \"baseName\": \"apiGroups\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"nonResourceURLs\",\n \"baseName\": \"nonResourceURLs\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceNames\",\n \"baseName\": \"resourceNames\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resources\",\n \"baseName\": \"resources\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"verbs\",\n \"baseName\": \"verbs\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PolicyRule.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request.\n*/\nexport class V1PolicyRulesWithSubjects {\n static getAttributeTypeMap() {\n return V1PolicyRulesWithSubjects.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PolicyRulesWithSubjects.discriminator = undefined;\nV1PolicyRulesWithSubjects.mapping = undefined;\nV1PolicyRulesWithSubjects.attributeTypeMap = [\n {\n \"name\": \"nonResourceRules\",\n \"baseName\": \"nonResourceRules\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceRules\",\n \"baseName\": \"resourceRules\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"subjects\",\n \"baseName\": \"subjects\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PolicyRulesWithSubjects.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PortStatus represents the error condition of a service port\n*/\nexport class V1PortStatus {\n static getAttributeTypeMap() {\n return V1PortStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PortStatus.discriminator = undefined;\nV1PortStatus.mapping = undefined;\nV1PortStatus.attributeTypeMap = [\n {\n \"name\": \"error\",\n \"baseName\": \"error\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"port\",\n \"baseName\": \"port\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"protocol\",\n \"baseName\": \"protocol\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PortStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PortworxVolumeSource represents a Portworx volume resource.\n*/\nexport class V1PortworxVolumeSource {\n static getAttributeTypeMap() {\n return V1PortworxVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PortworxVolumeSource.discriminator = undefined;\nV1PortworxVolumeSource.mapping = undefined;\nV1PortworxVolumeSource.attributeTypeMap = [\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeID\",\n \"baseName\": \"volumeID\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PortworxVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\n*/\nexport class V1Preconditions {\n static getAttributeTypeMap() {\n return V1Preconditions.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Preconditions.discriminator = undefined;\nV1Preconditions.mapping = undefined;\nV1Preconditions.attributeTypeMap = [\n {\n \"name\": \"resourceVersion\",\n \"baseName\": \"resourceVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"uid\",\n \"baseName\": \"uid\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Preconditions.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it\\'s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\n*/\nexport class V1PreferredSchedulingTerm {\n static getAttributeTypeMap() {\n return V1PreferredSchedulingTerm.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PreferredSchedulingTerm.discriminator = undefined;\nV1PreferredSchedulingTerm.mapping = undefined;\nV1PreferredSchedulingTerm.attributeTypeMap = [\n {\n \"name\": \"preference\",\n \"baseName\": \"preference\",\n \"type\": \"V1NodeSelectorTerm\",\n \"format\": \"\"\n },\n {\n \"name\": \"weight\",\n \"baseName\": \"weight\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1PreferredSchedulingTerm.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.\n*/\nexport class V1PriorityClass {\n static getAttributeTypeMap() {\n return V1PriorityClass.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PriorityClass.discriminator = undefined;\nV1PriorityClass.mapping = undefined;\nV1PriorityClass.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"description\",\n \"baseName\": \"description\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"globalDefault\",\n \"baseName\": \"globalDefault\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"preemptionPolicy\",\n \"baseName\": \"preemptionPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1PriorityClass.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PriorityClassList is a collection of priority classes.\n*/\nexport class V1PriorityClassList {\n static getAttributeTypeMap() {\n return V1PriorityClassList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PriorityClassList.discriminator = undefined;\nV1PriorityClassList.mapping = undefined;\nV1PriorityClassList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PriorityClassList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PriorityLevelConfiguration represents the configuration of a priority level.\n*/\nexport class V1PriorityLevelConfiguration {\n static getAttributeTypeMap() {\n return V1PriorityLevelConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PriorityLevelConfiguration.discriminator = undefined;\nV1PriorityLevelConfiguration.mapping = undefined;\nV1PriorityLevelConfiguration.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1PriorityLevelConfigurationSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1PriorityLevelConfigurationStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PriorityLevelConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PriorityLevelConfigurationCondition defines the condition of priority level.\n*/\nexport class V1PriorityLevelConfigurationCondition {\n static getAttributeTypeMap() {\n return V1PriorityLevelConfigurationCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PriorityLevelConfigurationCondition.discriminator = undefined;\nV1PriorityLevelConfigurationCondition.mapping = undefined;\nV1PriorityLevelConfigurationCondition.attributeTypeMap = [\n {\n \"name\": \"lastTransitionTime\",\n \"baseName\": \"lastTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PriorityLevelConfigurationCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\n*/\nexport class V1PriorityLevelConfigurationList {\n static getAttributeTypeMap() {\n return V1PriorityLevelConfigurationList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PriorityLevelConfigurationList.discriminator = undefined;\nV1PriorityLevelConfigurationList.mapping = undefined;\nV1PriorityLevelConfigurationList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PriorityLevelConfigurationList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PriorityLevelConfigurationReference contains information that points to the \\\"request-priority\\\" being used.\n*/\nexport class V1PriorityLevelConfigurationReference {\n static getAttributeTypeMap() {\n return V1PriorityLevelConfigurationReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PriorityLevelConfigurationReference.discriminator = undefined;\nV1PriorityLevelConfigurationReference.mapping = undefined;\nV1PriorityLevelConfigurationReference.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PriorityLevelConfigurationReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PriorityLevelConfigurationSpec specifies the configuration of a priority level.\n*/\nexport class V1PriorityLevelConfigurationSpec {\n static getAttributeTypeMap() {\n return V1PriorityLevelConfigurationSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PriorityLevelConfigurationSpec.discriminator = undefined;\nV1PriorityLevelConfigurationSpec.mapping = undefined;\nV1PriorityLevelConfigurationSpec.attributeTypeMap = [\n {\n \"name\": \"exempt\",\n \"baseName\": \"exempt\",\n \"type\": \"V1ExemptPriorityLevelConfiguration\",\n \"format\": \"\"\n },\n {\n \"name\": \"limited\",\n \"baseName\": \"limited\",\n \"type\": \"V1LimitedPriorityLevelConfiguration\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PriorityLevelConfigurationSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PriorityLevelConfigurationStatus represents the current state of a \\\"request-priority\\\".\n*/\nexport class V1PriorityLevelConfigurationStatus {\n static getAttributeTypeMap() {\n return V1PriorityLevelConfigurationStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1PriorityLevelConfigurationStatus.discriminator = undefined;\nV1PriorityLevelConfigurationStatus.mapping = undefined;\nV1PriorityLevelConfigurationStatus.attributeTypeMap = [\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1PriorityLevelConfigurationStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.\n*/\nexport class V1Probe {\n static getAttributeTypeMap() {\n return V1Probe.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Probe.discriminator = undefined;\nV1Probe.mapping = undefined;\nV1Probe.attributeTypeMap = [\n {\n \"name\": \"exec\",\n \"baseName\": \"exec\",\n \"type\": \"V1ExecAction\",\n \"format\": \"\"\n },\n {\n \"name\": \"failureThreshold\",\n \"baseName\": \"failureThreshold\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"grpc\",\n \"baseName\": \"grpc\",\n \"type\": \"V1GRPCAction\",\n \"format\": \"\"\n },\n {\n \"name\": \"httpGet\",\n \"baseName\": \"httpGet\",\n \"type\": \"V1HTTPGetAction\",\n \"format\": \"\"\n },\n {\n \"name\": \"initialDelaySeconds\",\n \"baseName\": \"initialDelaySeconds\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"periodSeconds\",\n \"baseName\": \"periodSeconds\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"successThreshold\",\n \"baseName\": \"successThreshold\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"tcpSocket\",\n \"baseName\": \"tcpSocket\",\n \"type\": \"V1TCPSocketAction\",\n \"format\": \"\"\n },\n {\n \"name\": \"terminationGracePeriodSeconds\",\n \"baseName\": \"terminationGracePeriodSeconds\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"timeoutSeconds\",\n \"baseName\": \"timeoutSeconds\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1Probe.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a projected volume source\n*/\nexport class V1ProjectedVolumeSource {\n static getAttributeTypeMap() {\n return V1ProjectedVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ProjectedVolumeSource.discriminator = undefined;\nV1ProjectedVolumeSource.mapping = undefined;\nV1ProjectedVolumeSource.attributeTypeMap = [\n {\n \"name\": \"defaultMode\",\n \"baseName\": \"defaultMode\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"sources\",\n \"baseName\": \"sources\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ProjectedVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* QueuingConfiguration holds the configuration parameters for queuing\n*/\nexport class V1QueuingConfiguration {\n static getAttributeTypeMap() {\n return V1QueuingConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1QueuingConfiguration.discriminator = undefined;\nV1QueuingConfiguration.mapping = undefined;\nV1QueuingConfiguration.attributeTypeMap = [\n {\n \"name\": \"handSize\",\n \"baseName\": \"handSize\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"queueLengthLimit\",\n \"baseName\": \"queueLengthLimit\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"queues\",\n \"baseName\": \"queues\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1QueuingConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.\n*/\nexport class V1QuobyteVolumeSource {\n static getAttributeTypeMap() {\n return V1QuobyteVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1QuobyteVolumeSource.discriminator = undefined;\nV1QuobyteVolumeSource.mapping = undefined;\nV1QuobyteVolumeSource.attributeTypeMap = [\n {\n \"name\": \"group\",\n \"baseName\": \"group\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"registry\",\n \"baseName\": \"registry\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"tenant\",\n \"baseName\": \"tenant\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"user\",\n \"baseName\": \"user\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"volume\",\n \"baseName\": \"volume\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1QuobyteVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.\n*/\nexport class V1RBDPersistentVolumeSource {\n static getAttributeTypeMap() {\n return V1RBDPersistentVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1RBDPersistentVolumeSource.discriminator = undefined;\nV1RBDPersistentVolumeSource.mapping = undefined;\nV1RBDPersistentVolumeSource.attributeTypeMap = [\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"image\",\n \"baseName\": \"image\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"keyring\",\n \"baseName\": \"keyring\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"monitors\",\n \"baseName\": \"monitors\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"pool\",\n \"baseName\": \"pool\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretRef\",\n \"baseName\": \"secretRef\",\n \"type\": \"V1SecretReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"user\",\n \"baseName\": \"user\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1RBDPersistentVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.\n*/\nexport class V1RBDVolumeSource {\n static getAttributeTypeMap() {\n return V1RBDVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1RBDVolumeSource.discriminator = undefined;\nV1RBDVolumeSource.mapping = undefined;\nV1RBDVolumeSource.attributeTypeMap = [\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"image\",\n \"baseName\": \"image\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"keyring\",\n \"baseName\": \"keyring\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"monitors\",\n \"baseName\": \"monitors\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"pool\",\n \"baseName\": \"pool\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretRef\",\n \"baseName\": \"secretRef\",\n \"type\": \"V1LocalObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"user\",\n \"baseName\": \"user\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1RBDVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ReplicaSet ensures that a specified number of pod replicas are running at any given time.\n*/\nexport class V1ReplicaSet {\n static getAttributeTypeMap() {\n return V1ReplicaSet.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ReplicaSet.discriminator = undefined;\nV1ReplicaSet.mapping = undefined;\nV1ReplicaSet.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1ReplicaSetSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1ReplicaSetStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ReplicaSet.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ReplicaSetCondition describes the state of a replica set at a certain point.\n*/\nexport class V1ReplicaSetCondition {\n static getAttributeTypeMap() {\n return V1ReplicaSetCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ReplicaSetCondition.discriminator = undefined;\nV1ReplicaSetCondition.mapping = undefined;\nV1ReplicaSetCondition.attributeTypeMap = [\n {\n \"name\": \"lastTransitionTime\",\n \"baseName\": \"lastTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ReplicaSetCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ReplicaSetList is a collection of ReplicaSets.\n*/\nexport class V1ReplicaSetList {\n static getAttributeTypeMap() {\n return V1ReplicaSetList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ReplicaSetList.discriminator = undefined;\nV1ReplicaSetList.mapping = undefined;\nV1ReplicaSetList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ReplicaSetList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ReplicaSetSpec is the specification of a ReplicaSet.\n*/\nexport class V1ReplicaSetSpec {\n static getAttributeTypeMap() {\n return V1ReplicaSetSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ReplicaSetSpec.discriminator = undefined;\nV1ReplicaSetSpec.mapping = undefined;\nV1ReplicaSetSpec.attributeTypeMap = [\n {\n \"name\": \"minReadySeconds\",\n \"baseName\": \"minReadySeconds\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"replicas\",\n \"baseName\": \"replicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"selector\",\n \"baseName\": \"selector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"template\",\n \"baseName\": \"template\",\n \"type\": \"V1PodTemplateSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ReplicaSetSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ReplicaSetStatus represents the current status of a ReplicaSet.\n*/\nexport class V1ReplicaSetStatus {\n static getAttributeTypeMap() {\n return V1ReplicaSetStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ReplicaSetStatus.discriminator = undefined;\nV1ReplicaSetStatus.mapping = undefined;\nV1ReplicaSetStatus.attributeTypeMap = [\n {\n \"name\": \"availableReplicas\",\n \"baseName\": \"availableReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"fullyLabeledReplicas\",\n \"baseName\": \"fullyLabeledReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"observedGeneration\",\n \"baseName\": \"observedGeneration\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"readyReplicas\",\n \"baseName\": \"readyReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"replicas\",\n \"baseName\": \"replicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"terminatingReplicas\",\n \"baseName\": \"terminatingReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1ReplicaSetStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ReplicationController represents the configuration of a replication controller.\n*/\nexport class V1ReplicationController {\n static getAttributeTypeMap() {\n return V1ReplicationController.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ReplicationController.discriminator = undefined;\nV1ReplicationController.mapping = undefined;\nV1ReplicationController.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1ReplicationControllerSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1ReplicationControllerStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ReplicationController.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ReplicationControllerCondition describes the state of a replication controller at a certain point.\n*/\nexport class V1ReplicationControllerCondition {\n static getAttributeTypeMap() {\n return V1ReplicationControllerCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ReplicationControllerCondition.discriminator = undefined;\nV1ReplicationControllerCondition.mapping = undefined;\nV1ReplicationControllerCondition.attributeTypeMap = [\n {\n \"name\": \"lastTransitionTime\",\n \"baseName\": \"lastTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ReplicationControllerCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ReplicationControllerList is a collection of replication controllers.\n*/\nexport class V1ReplicationControllerList {\n static getAttributeTypeMap() {\n return V1ReplicationControllerList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ReplicationControllerList.discriminator = undefined;\nV1ReplicationControllerList.mapping = undefined;\nV1ReplicationControllerList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ReplicationControllerList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ReplicationControllerSpec is the specification of a replication controller.\n*/\nexport class V1ReplicationControllerSpec {\n static getAttributeTypeMap() {\n return V1ReplicationControllerSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ReplicationControllerSpec.discriminator = undefined;\nV1ReplicationControllerSpec.mapping = undefined;\nV1ReplicationControllerSpec.attributeTypeMap = [\n {\n \"name\": \"minReadySeconds\",\n \"baseName\": \"minReadySeconds\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"replicas\",\n \"baseName\": \"replicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"selector\",\n \"baseName\": \"selector\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"template\",\n \"baseName\": \"template\",\n \"type\": \"V1PodTemplateSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ReplicationControllerSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ReplicationControllerStatus represents the current status of a replication controller.\n*/\nexport class V1ReplicationControllerStatus {\n static getAttributeTypeMap() {\n return V1ReplicationControllerStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ReplicationControllerStatus.discriminator = undefined;\nV1ReplicationControllerStatus.mapping = undefined;\nV1ReplicationControllerStatus.attributeTypeMap = [\n {\n \"name\": \"availableReplicas\",\n \"baseName\": \"availableReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"fullyLabeledReplicas\",\n \"baseName\": \"fullyLabeledReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"observedGeneration\",\n \"baseName\": \"observedGeneration\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"readyReplicas\",\n \"baseName\": \"readyReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"replicas\",\n \"baseName\": \"replicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1ReplicationControllerStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\n*/\nexport class V1ResourceAttributes {\n static getAttributeTypeMap() {\n return V1ResourceAttributes.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ResourceAttributes.discriminator = undefined;\nV1ResourceAttributes.mapping = undefined;\nV1ResourceAttributes.attributeTypeMap = [\n {\n \"name\": \"fieldSelector\",\n \"baseName\": \"fieldSelector\",\n \"type\": \"V1FieldSelectorAttributes\",\n \"format\": \"\"\n },\n {\n \"name\": \"group\",\n \"baseName\": \"group\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"labelSelector\",\n \"baseName\": \"labelSelector\",\n \"type\": \"V1LabelSelectorAttributes\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespace\",\n \"baseName\": \"namespace\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resource\",\n \"baseName\": \"resource\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"subresource\",\n \"baseName\": \"subresource\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"verb\",\n \"baseName\": \"verb\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"version\",\n \"baseName\": \"version\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ResourceAttributes.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaim references one entry in PodSpec.ResourceClaims.\n*/\nexport class V1ResourceClaim {\n static getAttributeTypeMap() {\n return V1ResourceClaim.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ResourceClaim.discriminator = undefined;\nV1ResourceClaim.mapping = undefined;\nV1ResourceClaim.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"request\",\n \"baseName\": \"request\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ResourceClaim.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceFieldSelector represents container resources (cpu, memory) and their output format\n*/\nexport class V1ResourceFieldSelector {\n static getAttributeTypeMap() {\n return V1ResourceFieldSelector.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ResourceFieldSelector.discriminator = undefined;\nV1ResourceFieldSelector.mapping = undefined;\nV1ResourceFieldSelector.attributeTypeMap = [\n {\n \"name\": \"containerName\",\n \"baseName\": \"containerName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"divisor\",\n \"baseName\": \"divisor\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resource\",\n \"baseName\": \"resource\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ResourceFieldSelector.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680.\n*/\nexport class V1ResourceHealth {\n static getAttributeTypeMap() {\n return V1ResourceHealth.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ResourceHealth.discriminator = undefined;\nV1ResourceHealth.mapping = undefined;\nV1ResourceHealth.attributeTypeMap = [\n {\n \"name\": \"health\",\n \"baseName\": \"health\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceID\",\n \"baseName\": \"resourceID\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ResourceHealth.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourcePolicyRule is a predicate that matches some resource requests, testing the request\\'s verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==\\\"\\\"`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request\\'s namespace.\n*/\nexport class V1ResourcePolicyRule {\n static getAttributeTypeMap() {\n return V1ResourcePolicyRule.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ResourcePolicyRule.discriminator = undefined;\nV1ResourcePolicyRule.mapping = undefined;\nV1ResourcePolicyRule.attributeTypeMap = [\n {\n \"name\": \"apiGroups\",\n \"baseName\": \"apiGroups\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"clusterScope\",\n \"baseName\": \"clusterScope\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespaces\",\n \"baseName\": \"namespaces\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resources\",\n \"baseName\": \"resources\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"verbs\",\n \"baseName\": \"verbs\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ResourcePolicyRule.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceQuota sets aggregate quota restrictions enforced per namespace\n*/\nexport class V1ResourceQuota {\n static getAttributeTypeMap() {\n return V1ResourceQuota.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ResourceQuota.discriminator = undefined;\nV1ResourceQuota.mapping = undefined;\nV1ResourceQuota.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1ResourceQuotaSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1ResourceQuotaStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ResourceQuota.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceQuotaList is a list of ResourceQuota items.\n*/\nexport class V1ResourceQuotaList {\n static getAttributeTypeMap() {\n return V1ResourceQuotaList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ResourceQuotaList.discriminator = undefined;\nV1ResourceQuotaList.mapping = undefined;\nV1ResourceQuotaList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ResourceQuotaList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceQuotaSpec defines the desired hard limits to enforce for Quota.\n*/\nexport class V1ResourceQuotaSpec {\n static getAttributeTypeMap() {\n return V1ResourceQuotaSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ResourceQuotaSpec.discriminator = undefined;\nV1ResourceQuotaSpec.mapping = undefined;\nV1ResourceQuotaSpec.attributeTypeMap = [\n {\n \"name\": \"hard\",\n \"baseName\": \"hard\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"scopeSelector\",\n \"baseName\": \"scopeSelector\",\n \"type\": \"V1ScopeSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"scopes\",\n \"baseName\": \"scopes\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ResourceQuotaSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceQuotaStatus defines the enforced hard limits and observed use.\n*/\nexport class V1ResourceQuotaStatus {\n static getAttributeTypeMap() {\n return V1ResourceQuotaStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ResourceQuotaStatus.discriminator = undefined;\nV1ResourceQuotaStatus.mapping = undefined;\nV1ResourceQuotaStatus.attributeTypeMap = [\n {\n \"name\": \"hard\",\n \"baseName\": \"hard\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"used\",\n \"baseName\": \"used\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ResourceQuotaStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceRequirements describes the compute resource requirements.\n*/\nexport class V1ResourceRequirements {\n static getAttributeTypeMap() {\n return V1ResourceRequirements.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ResourceRequirements.discriminator = undefined;\nV1ResourceRequirements.mapping = undefined;\nV1ResourceRequirements.attributeTypeMap = [\n {\n \"name\": \"claims\",\n \"baseName\": \"claims\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"limits\",\n \"baseName\": \"limits\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"requests\",\n \"baseName\": \"requests\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ResourceRequirements.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn\\'t significant, may contain duplicates, and possibly be incomplete.\n*/\nexport class V1ResourceRule {\n static getAttributeTypeMap() {\n return V1ResourceRule.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ResourceRule.discriminator = undefined;\nV1ResourceRule.mapping = undefined;\nV1ResourceRule.attributeTypeMap = [\n {\n \"name\": \"apiGroups\",\n \"baseName\": \"apiGroups\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceNames\",\n \"baseName\": \"resourceNames\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resources\",\n \"baseName\": \"resources\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"verbs\",\n \"baseName\": \"verbs\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ResourceRule.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceStatus represents the status of a single resource allocated to a Pod.\n*/\nexport class V1ResourceStatus {\n static getAttributeTypeMap() {\n return V1ResourceStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ResourceStatus.discriminator = undefined;\nV1ResourceStatus.mapping = undefined;\nV1ResourceStatus.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resources\",\n \"baseName\": \"resources\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ResourceStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.\n*/\nexport class V1Role {\n static getAttributeTypeMap() {\n return V1Role.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Role.discriminator = undefined;\nV1Role.mapping = undefined;\nV1Role.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"rules\",\n \"baseName\": \"rules\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Role.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.\n*/\nexport class V1RoleBinding {\n static getAttributeTypeMap() {\n return V1RoleBinding.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1RoleBinding.discriminator = undefined;\nV1RoleBinding.mapping = undefined;\nV1RoleBinding.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"roleRef\",\n \"baseName\": \"roleRef\",\n \"type\": \"V1RoleRef\",\n \"format\": \"\"\n },\n {\n \"name\": \"subjects\",\n \"baseName\": \"subjects\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1RoleBinding.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* RoleBindingList is a collection of RoleBindings\n*/\nexport class V1RoleBindingList {\n static getAttributeTypeMap() {\n return V1RoleBindingList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1RoleBindingList.discriminator = undefined;\nV1RoleBindingList.mapping = undefined;\nV1RoleBindingList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1RoleBindingList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* RoleList is a collection of Roles\n*/\nexport class V1RoleList {\n static getAttributeTypeMap() {\n return V1RoleList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1RoleList.discriminator = undefined;\nV1RoleList.mapping = undefined;\nV1RoleList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1RoleList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* RoleRef contains information that points to the role being used\n*/\nexport class V1RoleRef {\n static getAttributeTypeMap() {\n return V1RoleRef.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1RoleRef.discriminator = undefined;\nV1RoleRef.mapping = undefined;\nV1RoleRef.attributeTypeMap = [\n {\n \"name\": \"apiGroup\",\n \"baseName\": \"apiGroup\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1RoleRef.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Spec to control the desired behavior of daemon set rolling update.\n*/\nexport class V1RollingUpdateDaemonSet {\n static getAttributeTypeMap() {\n return V1RollingUpdateDaemonSet.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1RollingUpdateDaemonSet.discriminator = undefined;\nV1RollingUpdateDaemonSet.mapping = undefined;\nV1RollingUpdateDaemonSet.attributeTypeMap = [\n {\n \"name\": \"maxSurge\",\n \"baseName\": \"maxSurge\",\n \"type\": \"IntOrString\",\n \"format\": \"int-or-string\"\n },\n {\n \"name\": \"maxUnavailable\",\n \"baseName\": \"maxUnavailable\",\n \"type\": \"IntOrString\",\n \"format\": \"int-or-string\"\n }\n];\n//# sourceMappingURL=V1RollingUpdateDaemonSet.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Spec to control the desired behavior of rolling update.\n*/\nexport class V1RollingUpdateDeployment {\n static getAttributeTypeMap() {\n return V1RollingUpdateDeployment.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1RollingUpdateDeployment.discriminator = undefined;\nV1RollingUpdateDeployment.mapping = undefined;\nV1RollingUpdateDeployment.attributeTypeMap = [\n {\n \"name\": \"maxSurge\",\n \"baseName\": \"maxSurge\",\n \"type\": \"IntOrString\",\n \"format\": \"int-or-string\"\n },\n {\n \"name\": \"maxUnavailable\",\n \"baseName\": \"maxUnavailable\",\n \"type\": \"IntOrString\",\n \"format\": \"int-or-string\"\n }\n];\n//# sourceMappingURL=V1RollingUpdateDeployment.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\n*/\nexport class V1RollingUpdateStatefulSetStrategy {\n static getAttributeTypeMap() {\n return V1RollingUpdateStatefulSetStrategy.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1RollingUpdateStatefulSetStrategy.discriminator = undefined;\nV1RollingUpdateStatefulSetStrategy.mapping = undefined;\nV1RollingUpdateStatefulSetStrategy.attributeTypeMap = [\n {\n \"name\": \"maxUnavailable\",\n \"baseName\": \"maxUnavailable\",\n \"type\": \"IntOrString\",\n \"format\": \"int-or-string\"\n },\n {\n \"name\": \"partition\",\n \"baseName\": \"partition\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1RollingUpdateStatefulSetStrategy.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.\n*/\nexport class V1RuleWithOperations {\n static getAttributeTypeMap() {\n return V1RuleWithOperations.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1RuleWithOperations.discriminator = undefined;\nV1RuleWithOperations.mapping = undefined;\nV1RuleWithOperations.attributeTypeMap = [\n {\n \"name\": \"apiGroups\",\n \"baseName\": \"apiGroups\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"apiVersions\",\n \"baseName\": \"apiVersions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"operations\",\n \"baseName\": \"operations\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resources\",\n \"baseName\": \"resources\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"scope\",\n \"baseName\": \"scope\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1RuleWithOperations.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod. For more details, see https://kubernetes.io/docs/concepts/containers/runtime-class/\n*/\nexport class V1RuntimeClass {\n static getAttributeTypeMap() {\n return V1RuntimeClass.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1RuntimeClass.discriminator = undefined;\nV1RuntimeClass.mapping = undefined;\nV1RuntimeClass.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"handler\",\n \"baseName\": \"handler\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"overhead\",\n \"baseName\": \"overhead\",\n \"type\": \"V1Overhead\",\n \"format\": \"\"\n },\n {\n \"name\": \"scheduling\",\n \"baseName\": \"scheduling\",\n \"type\": \"V1Scheduling\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1RuntimeClass.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* RuntimeClassList is a list of RuntimeClass objects.\n*/\nexport class V1RuntimeClassList {\n static getAttributeTypeMap() {\n return V1RuntimeClassList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1RuntimeClassList.discriminator = undefined;\nV1RuntimeClassList.mapping = undefined;\nV1RuntimeClassList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1RuntimeClassList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SELinuxOptions are the labels to be applied to the container\n*/\nexport class V1SELinuxOptions {\n static getAttributeTypeMap() {\n return V1SELinuxOptions.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SELinuxOptions.discriminator = undefined;\nV1SELinuxOptions.mapping = undefined;\nV1SELinuxOptions.attributeTypeMap = [\n {\n \"name\": \"level\",\n \"baseName\": \"level\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"role\",\n \"baseName\": \"role\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"user\",\n \"baseName\": \"user\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SELinuxOptions.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Scale represents a scaling request for a resource.\n*/\nexport class V1Scale {\n static getAttributeTypeMap() {\n return V1Scale.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Scale.discriminator = undefined;\nV1Scale.mapping = undefined;\nV1Scale.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1ScaleSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1ScaleStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Scale.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume\n*/\nexport class V1ScaleIOPersistentVolumeSource {\n static getAttributeTypeMap() {\n return V1ScaleIOPersistentVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ScaleIOPersistentVolumeSource.discriminator = undefined;\nV1ScaleIOPersistentVolumeSource.mapping = undefined;\nV1ScaleIOPersistentVolumeSource.attributeTypeMap = [\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"gateway\",\n \"baseName\": \"gateway\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"protectionDomain\",\n \"baseName\": \"protectionDomain\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretRef\",\n \"baseName\": \"secretRef\",\n \"type\": \"V1SecretReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"sslEnabled\",\n \"baseName\": \"sslEnabled\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"storageMode\",\n \"baseName\": \"storageMode\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"storagePool\",\n \"baseName\": \"storagePool\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"system\",\n \"baseName\": \"system\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeName\",\n \"baseName\": \"volumeName\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ScaleIOPersistentVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ScaleIOVolumeSource represents a persistent ScaleIO volume\n*/\nexport class V1ScaleIOVolumeSource {\n static getAttributeTypeMap() {\n return V1ScaleIOVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ScaleIOVolumeSource.discriminator = undefined;\nV1ScaleIOVolumeSource.mapping = undefined;\nV1ScaleIOVolumeSource.attributeTypeMap = [\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"gateway\",\n \"baseName\": \"gateway\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"protectionDomain\",\n \"baseName\": \"protectionDomain\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretRef\",\n \"baseName\": \"secretRef\",\n \"type\": \"V1LocalObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"sslEnabled\",\n \"baseName\": \"sslEnabled\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"storageMode\",\n \"baseName\": \"storageMode\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"storagePool\",\n \"baseName\": \"storagePool\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"system\",\n \"baseName\": \"system\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeName\",\n \"baseName\": \"volumeName\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ScaleIOVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ScaleSpec describes the attributes of a scale subresource.\n*/\nexport class V1ScaleSpec {\n static getAttributeTypeMap() {\n return V1ScaleSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ScaleSpec.discriminator = undefined;\nV1ScaleSpec.mapping = undefined;\nV1ScaleSpec.attributeTypeMap = [\n {\n \"name\": \"replicas\",\n \"baseName\": \"replicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1ScaleSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ScaleStatus represents the current status of a scale subresource.\n*/\nexport class V1ScaleStatus {\n static getAttributeTypeMap() {\n return V1ScaleStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ScaleStatus.discriminator = undefined;\nV1ScaleStatus.mapping = undefined;\nV1ScaleStatus.attributeTypeMap = [\n {\n \"name\": \"replicas\",\n \"baseName\": \"replicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"selector\",\n \"baseName\": \"selector\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ScaleStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.\n*/\nexport class V1Scheduling {\n static getAttributeTypeMap() {\n return V1Scheduling.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Scheduling.discriminator = undefined;\nV1Scheduling.mapping = undefined;\nV1Scheduling.attributeTypeMap = [\n {\n \"name\": \"nodeSelector\",\n \"baseName\": \"nodeSelector\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"tolerations\",\n \"baseName\": \"tolerations\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Scheduling.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.\n*/\nexport class V1ScopeSelector {\n static getAttributeTypeMap() {\n return V1ScopeSelector.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ScopeSelector.discriminator = undefined;\nV1ScopeSelector.mapping = undefined;\nV1ScopeSelector.attributeTypeMap = [\n {\n \"name\": \"matchExpressions\",\n \"baseName\": \"matchExpressions\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ScopeSelector.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.\n*/\nexport class V1ScopedResourceSelectorRequirement {\n static getAttributeTypeMap() {\n return V1ScopedResourceSelectorRequirement.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ScopedResourceSelectorRequirement.discriminator = undefined;\nV1ScopedResourceSelectorRequirement.mapping = undefined;\nV1ScopedResourceSelectorRequirement.attributeTypeMap = [\n {\n \"name\": \"operator\",\n \"baseName\": \"operator\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"scopeName\",\n \"baseName\": \"scopeName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"values\",\n \"baseName\": \"values\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ScopedResourceSelectorRequirement.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SeccompProfile defines a pod/container\\'s seccomp profile settings. Only one profile source may be set.\n*/\nexport class V1SeccompProfile {\n static getAttributeTypeMap() {\n return V1SeccompProfile.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SeccompProfile.discriminator = undefined;\nV1SeccompProfile.mapping = undefined;\nV1SeccompProfile.attributeTypeMap = [\n {\n \"name\": \"localhostProfile\",\n \"baseName\": \"localhostProfile\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SeccompProfile.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.\n*/\nexport class V1Secret {\n static getAttributeTypeMap() {\n return V1Secret.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Secret.discriminator = undefined;\nV1Secret.mapping = undefined;\nV1Secret.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"data\",\n \"baseName\": \"data\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"byte\"\n },\n {\n \"name\": \"immutable\",\n \"baseName\": \"immutable\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"stringData\",\n \"baseName\": \"stringData\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Secret.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SecretEnvSource selects a Secret to populate the environment variables with. The contents of the target Secret\\'s Data field will represent the key-value pairs as environment variables.\n*/\nexport class V1SecretEnvSource {\n static getAttributeTypeMap() {\n return V1SecretEnvSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SecretEnvSource.discriminator = undefined;\nV1SecretEnvSource.mapping = undefined;\nV1SecretEnvSource.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"optional\",\n \"baseName\": \"optional\",\n \"type\": \"boolean\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SecretEnvSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SecretKeySelector selects a key of a Secret.\n*/\nexport class V1SecretKeySelector {\n static getAttributeTypeMap() {\n return V1SecretKeySelector.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SecretKeySelector.discriminator = undefined;\nV1SecretKeySelector.mapping = undefined;\nV1SecretKeySelector.attributeTypeMap = [\n {\n \"name\": \"key\",\n \"baseName\": \"key\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"optional\",\n \"baseName\": \"optional\",\n \"type\": \"boolean\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SecretKeySelector.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SecretList is a list of Secret.\n*/\nexport class V1SecretList {\n static getAttributeTypeMap() {\n return V1SecretList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SecretList.discriminator = undefined;\nV1SecretList.mapping = undefined;\nV1SecretList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SecretList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Adapts a secret into a projected volume. The contents of the target Secret\\'s Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.\n*/\nexport class V1SecretProjection {\n static getAttributeTypeMap() {\n return V1SecretProjection.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SecretProjection.discriminator = undefined;\nV1SecretProjection.mapping = undefined;\nV1SecretProjection.attributeTypeMap = [\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"optional\",\n \"baseName\": \"optional\",\n \"type\": \"boolean\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SecretProjection.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace\n*/\nexport class V1SecretReference {\n static getAttributeTypeMap() {\n return V1SecretReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SecretReference.discriminator = undefined;\nV1SecretReference.mapping = undefined;\nV1SecretReference.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespace\",\n \"baseName\": \"namespace\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SecretReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Adapts a Secret into a volume. The contents of the target Secret\\'s Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.\n*/\nexport class V1SecretVolumeSource {\n static getAttributeTypeMap() {\n return V1SecretVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SecretVolumeSource.discriminator = undefined;\nV1SecretVolumeSource.mapping = undefined;\nV1SecretVolumeSource.attributeTypeMap = [\n {\n \"name\": \"defaultMode\",\n \"baseName\": \"defaultMode\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"optional\",\n \"baseName\": \"optional\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretName\",\n \"baseName\": \"secretName\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SecretVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.\n*/\nexport class V1SecurityContext {\n static getAttributeTypeMap() {\n return V1SecurityContext.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SecurityContext.discriminator = undefined;\nV1SecurityContext.mapping = undefined;\nV1SecurityContext.attributeTypeMap = [\n {\n \"name\": \"allowPrivilegeEscalation\",\n \"baseName\": \"allowPrivilegeEscalation\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"appArmorProfile\",\n \"baseName\": \"appArmorProfile\",\n \"type\": \"V1AppArmorProfile\",\n \"format\": \"\"\n },\n {\n \"name\": \"capabilities\",\n \"baseName\": \"capabilities\",\n \"type\": \"V1Capabilities\",\n \"format\": \"\"\n },\n {\n \"name\": \"privileged\",\n \"baseName\": \"privileged\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"procMount\",\n \"baseName\": \"procMount\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnlyRootFilesystem\",\n \"baseName\": \"readOnlyRootFilesystem\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"runAsGroup\",\n \"baseName\": \"runAsGroup\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"runAsNonRoot\",\n \"baseName\": \"runAsNonRoot\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"runAsUser\",\n \"baseName\": \"runAsUser\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"seLinuxOptions\",\n \"baseName\": \"seLinuxOptions\",\n \"type\": \"V1SELinuxOptions\",\n \"format\": \"\"\n },\n {\n \"name\": \"seccompProfile\",\n \"baseName\": \"seccompProfile\",\n \"type\": \"V1SeccompProfile\",\n \"format\": \"\"\n },\n {\n \"name\": \"windowsOptions\",\n \"baseName\": \"windowsOptions\",\n \"type\": \"V1WindowsSecurityContextOptions\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SecurityContext.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SelectableField specifies the JSON path of a field that may be used with field selectors.\n*/\nexport class V1SelectableField {\n static getAttributeTypeMap() {\n return V1SelectableField.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SelectableField.discriminator = undefined;\nV1SelectableField.mapping = undefined;\nV1SelectableField.attributeTypeMap = [\n {\n \"name\": \"jsonPath\",\n \"baseName\": \"jsonPath\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SelectableField.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \\\"in all namespaces\\\". Self is a special case, because users should always be able to check whether they can perform an action\n*/\nexport class V1SelfSubjectAccessReview {\n static getAttributeTypeMap() {\n return V1SelfSubjectAccessReview.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SelfSubjectAccessReview.discriminator = undefined;\nV1SelfSubjectAccessReview.mapping = undefined;\nV1SelfSubjectAccessReview.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1SelfSubjectAccessReviewSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1SubjectAccessReviewStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SelfSubjectAccessReview.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\n*/\nexport class V1SelfSubjectAccessReviewSpec {\n static getAttributeTypeMap() {\n return V1SelfSubjectAccessReviewSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SelfSubjectAccessReviewSpec.discriminator = undefined;\nV1SelfSubjectAccessReviewSpec.mapping = undefined;\nV1SelfSubjectAccessReviewSpec.attributeTypeMap = [\n {\n \"name\": \"nonResourceAttributes\",\n \"baseName\": \"nonResourceAttributes\",\n \"type\": \"V1NonResourceAttributes\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceAttributes\",\n \"baseName\": \"resourceAttributes\",\n \"type\": \"V1ResourceAttributes\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SelfSubjectAccessReviewSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated. If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase.\n*/\nexport class V1SelfSubjectReview {\n static getAttributeTypeMap() {\n return V1SelfSubjectReview.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SelfSubjectReview.discriminator = undefined;\nV1SelfSubjectReview.mapping = undefined;\nV1SelfSubjectReview.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1SelfSubjectReviewStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SelfSubjectReview.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.\n*/\nexport class V1SelfSubjectReviewStatus {\n static getAttributeTypeMap() {\n return V1SelfSubjectReviewStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SelfSubjectReviewStatus.discriminator = undefined;\nV1SelfSubjectReviewStatus.mapping = undefined;\nV1SelfSubjectReviewStatus.attributeTypeMap = [\n {\n \"name\": \"userInfo\",\n \"baseName\": \"userInfo\",\n \"type\": \"V1UserInfo\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SelfSubjectReviewStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server\\'s authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.\n*/\nexport class V1SelfSubjectRulesReview {\n static getAttributeTypeMap() {\n return V1SelfSubjectRulesReview.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SelfSubjectRulesReview.discriminator = undefined;\nV1SelfSubjectRulesReview.mapping = undefined;\nV1SelfSubjectRulesReview.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1SelfSubjectRulesReviewSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1SubjectRulesReviewStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SelfSubjectRulesReview.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.\n*/\nexport class V1SelfSubjectRulesReviewSpec {\n static getAttributeTypeMap() {\n return V1SelfSubjectRulesReviewSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SelfSubjectRulesReviewSpec.discriminator = undefined;\nV1SelfSubjectRulesReviewSpec.mapping = undefined;\nV1SelfSubjectRulesReviewSpec.attributeTypeMap = [\n {\n \"name\": \"namespace\",\n \"baseName\": \"namespace\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SelfSubjectRulesReviewSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.\n*/\nexport class V1ServerAddressByClientCIDR {\n static getAttributeTypeMap() {\n return V1ServerAddressByClientCIDR.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ServerAddressByClientCIDR.discriminator = undefined;\nV1ServerAddressByClientCIDR.mapping = undefined;\nV1ServerAddressByClientCIDR.attributeTypeMap = [\n {\n \"name\": \"clientCIDR\",\n \"baseName\": \"clientCIDR\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"serverAddress\",\n \"baseName\": \"serverAddress\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ServerAddressByClientCIDR.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.\n*/\nexport class V1Service {\n static getAttributeTypeMap() {\n return V1Service.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Service.discriminator = undefined;\nV1Service.mapping = undefined;\nV1Service.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1ServiceSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1ServiceStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Service.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets\n*/\nexport class V1ServiceAccount {\n static getAttributeTypeMap() {\n return V1ServiceAccount.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ServiceAccount.discriminator = undefined;\nV1ServiceAccount.mapping = undefined;\nV1ServiceAccount.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"automountServiceAccountToken\",\n \"baseName\": \"automountServiceAccountToken\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"imagePullSecrets\",\n \"baseName\": \"imagePullSecrets\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"secrets\",\n \"baseName\": \"secrets\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ServiceAccount.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceAccountList is a list of ServiceAccount objects\n*/\nexport class V1ServiceAccountList {\n static getAttributeTypeMap() {\n return V1ServiceAccountList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ServiceAccountList.discriminator = undefined;\nV1ServiceAccountList.mapping = undefined;\nV1ServiceAccountList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ServiceAccountList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceAccountSubject holds detailed information for service-account-kind subject.\n*/\nexport class V1ServiceAccountSubject {\n static getAttributeTypeMap() {\n return V1ServiceAccountSubject.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ServiceAccountSubject.discriminator = undefined;\nV1ServiceAccountSubject.mapping = undefined;\nV1ServiceAccountSubject.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespace\",\n \"baseName\": \"namespace\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ServiceAccountSubject.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).\n*/\nexport class V1ServiceAccountTokenProjection {\n static getAttributeTypeMap() {\n return V1ServiceAccountTokenProjection.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ServiceAccountTokenProjection.discriminator = undefined;\nV1ServiceAccountTokenProjection.mapping = undefined;\nV1ServiceAccountTokenProjection.attributeTypeMap = [\n {\n \"name\": \"audience\",\n \"baseName\": \"audience\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"expirationSeconds\",\n \"baseName\": \"expirationSeconds\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"path\",\n \"baseName\": \"path\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ServiceAccountTokenProjection.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceBackendPort is the service port being referenced.\n*/\nexport class V1ServiceBackendPort {\n static getAttributeTypeMap() {\n return V1ServiceBackendPort.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ServiceBackendPort.discriminator = undefined;\nV1ServiceBackendPort.mapping = undefined;\nV1ServiceBackendPort.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"number\",\n \"baseName\": \"number\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1ServiceBackendPort.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceCIDR defines a range of IP addresses using CIDR format (e.g. 192.168.0.0/24 or 2001:db2::/64). This range is used to allocate ClusterIPs to Service objects.\n*/\nexport class V1ServiceCIDR {\n static getAttributeTypeMap() {\n return V1ServiceCIDR.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ServiceCIDR.discriminator = undefined;\nV1ServiceCIDR.mapping = undefined;\nV1ServiceCIDR.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1ServiceCIDRSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1ServiceCIDRStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ServiceCIDR.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceCIDRList contains a list of ServiceCIDR objects.\n*/\nexport class V1ServiceCIDRList {\n static getAttributeTypeMap() {\n return V1ServiceCIDRList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ServiceCIDRList.discriminator = undefined;\nV1ServiceCIDRList.mapping = undefined;\nV1ServiceCIDRList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ServiceCIDRList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceCIDRSpec define the CIDRs the user wants to use for allocating ClusterIPs for Services.\n*/\nexport class V1ServiceCIDRSpec {\n static getAttributeTypeMap() {\n return V1ServiceCIDRSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ServiceCIDRSpec.discriminator = undefined;\nV1ServiceCIDRSpec.mapping = undefined;\nV1ServiceCIDRSpec.attributeTypeMap = [\n {\n \"name\": \"cidrs\",\n \"baseName\": \"cidrs\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ServiceCIDRSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceCIDRStatus describes the current state of the ServiceCIDR.\n*/\nexport class V1ServiceCIDRStatus {\n static getAttributeTypeMap() {\n return V1ServiceCIDRStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ServiceCIDRStatus.discriminator = undefined;\nV1ServiceCIDRStatus.mapping = undefined;\nV1ServiceCIDRStatus.attributeTypeMap = [\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ServiceCIDRStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceList holds a list of services.\n*/\nexport class V1ServiceList {\n static getAttributeTypeMap() {\n return V1ServiceList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ServiceList.discriminator = undefined;\nV1ServiceList.mapping = undefined;\nV1ServiceList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ServiceList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServicePort contains information on service\\'s port.\n*/\nexport class V1ServicePort {\n static getAttributeTypeMap() {\n return V1ServicePort.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ServicePort.discriminator = undefined;\nV1ServicePort.mapping = undefined;\nV1ServicePort.attributeTypeMap = [\n {\n \"name\": \"appProtocol\",\n \"baseName\": \"appProtocol\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodePort\",\n \"baseName\": \"nodePort\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"port\",\n \"baseName\": \"port\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"protocol\",\n \"baseName\": \"protocol\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"targetPort\",\n \"baseName\": \"targetPort\",\n \"type\": \"IntOrString\",\n \"format\": \"int-or-string\"\n }\n];\n//# sourceMappingURL=V1ServicePort.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceSpec describes the attributes that a user creates on a service.\n*/\nexport class V1ServiceSpec {\n static getAttributeTypeMap() {\n return V1ServiceSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ServiceSpec.discriminator = undefined;\nV1ServiceSpec.mapping = undefined;\nV1ServiceSpec.attributeTypeMap = [\n {\n \"name\": \"allocateLoadBalancerNodePorts\",\n \"baseName\": \"allocateLoadBalancerNodePorts\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"clusterIP\",\n \"baseName\": \"clusterIP\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"clusterIPs\",\n \"baseName\": \"clusterIPs\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"externalIPs\",\n \"baseName\": \"externalIPs\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"externalName\",\n \"baseName\": \"externalName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"externalTrafficPolicy\",\n \"baseName\": \"externalTrafficPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"healthCheckNodePort\",\n \"baseName\": \"healthCheckNodePort\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"internalTrafficPolicy\",\n \"baseName\": \"internalTrafficPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"ipFamilies\",\n \"baseName\": \"ipFamilies\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"ipFamilyPolicy\",\n \"baseName\": \"ipFamilyPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"loadBalancerClass\",\n \"baseName\": \"loadBalancerClass\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"loadBalancerIP\",\n \"baseName\": \"loadBalancerIP\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"loadBalancerSourceRanges\",\n \"baseName\": \"loadBalancerSourceRanges\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"ports\",\n \"baseName\": \"ports\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"publishNotReadyAddresses\",\n \"baseName\": \"publishNotReadyAddresses\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"selector\",\n \"baseName\": \"selector\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"sessionAffinity\",\n \"baseName\": \"sessionAffinity\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"sessionAffinityConfig\",\n \"baseName\": \"sessionAffinityConfig\",\n \"type\": \"V1SessionAffinityConfig\",\n \"format\": \"\"\n },\n {\n \"name\": \"trafficDistribution\",\n \"baseName\": \"trafficDistribution\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ServiceSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceStatus represents the current status of a service.\n*/\nexport class V1ServiceStatus {\n static getAttributeTypeMap() {\n return V1ServiceStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ServiceStatus.discriminator = undefined;\nV1ServiceStatus.mapping = undefined;\nV1ServiceStatus.attributeTypeMap = [\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"loadBalancer\",\n \"baseName\": \"loadBalancer\",\n \"type\": \"V1LoadBalancerStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ServiceStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SessionAffinityConfig represents the configurations of session affinity.\n*/\nexport class V1SessionAffinityConfig {\n static getAttributeTypeMap() {\n return V1SessionAffinityConfig.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SessionAffinityConfig.discriminator = undefined;\nV1SessionAffinityConfig.mapping = undefined;\nV1SessionAffinityConfig.attributeTypeMap = [\n {\n \"name\": \"clientIP\",\n \"baseName\": \"clientIP\",\n \"type\": \"V1ClientIPConfig\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SessionAffinityConfig.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SleepAction describes a \\\"sleep\\\" action.\n*/\nexport class V1SleepAction {\n static getAttributeTypeMap() {\n return V1SleepAction.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SleepAction.discriminator = undefined;\nV1SleepAction.mapping = undefined;\nV1SleepAction.attributeTypeMap = [\n {\n \"name\": \"seconds\",\n \"baseName\": \"seconds\",\n \"type\": \"number\",\n \"format\": \"int64\"\n }\n];\n//# sourceMappingURL=V1SleepAction.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* StatefulSet represents a set of pods with consistent identities. Identities are defined as: - Network: A single stable DNS and hostname. - Storage: As many VolumeClaims as requested. The StatefulSet guarantees that a given network identity will always map to the same storage identity.\n*/\nexport class V1StatefulSet {\n static getAttributeTypeMap() {\n return V1StatefulSet.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1StatefulSet.discriminator = undefined;\nV1StatefulSet.mapping = undefined;\nV1StatefulSet.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1StatefulSetSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1StatefulSetStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1StatefulSet.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* StatefulSetCondition describes the state of a statefulset at a certain point.\n*/\nexport class V1StatefulSetCondition {\n static getAttributeTypeMap() {\n return V1StatefulSetCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1StatefulSetCondition.discriminator = undefined;\nV1StatefulSetCondition.mapping = undefined;\nV1StatefulSetCondition.attributeTypeMap = [\n {\n \"name\": \"lastTransitionTime\",\n \"baseName\": \"lastTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1StatefulSetCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* StatefulSetList is a collection of StatefulSets.\n*/\nexport class V1StatefulSetList {\n static getAttributeTypeMap() {\n return V1StatefulSetList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1StatefulSetList.discriminator = undefined;\nV1StatefulSetList.mapping = undefined;\nV1StatefulSetList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1StatefulSetList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.\n*/\nexport class V1StatefulSetOrdinals {\n static getAttributeTypeMap() {\n return V1StatefulSetOrdinals.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1StatefulSetOrdinals.discriminator = undefined;\nV1StatefulSetOrdinals.mapping = undefined;\nV1StatefulSetOrdinals.attributeTypeMap = [\n {\n \"name\": \"start\",\n \"baseName\": \"start\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1StatefulSetOrdinals.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.\n*/\nexport class V1StatefulSetPersistentVolumeClaimRetentionPolicy {\n static getAttributeTypeMap() {\n return V1StatefulSetPersistentVolumeClaimRetentionPolicy.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1StatefulSetPersistentVolumeClaimRetentionPolicy.discriminator = undefined;\nV1StatefulSetPersistentVolumeClaimRetentionPolicy.mapping = undefined;\nV1StatefulSetPersistentVolumeClaimRetentionPolicy.attributeTypeMap = [\n {\n \"name\": \"whenDeleted\",\n \"baseName\": \"whenDeleted\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"whenScaled\",\n \"baseName\": \"whenScaled\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1StatefulSetPersistentVolumeClaimRetentionPolicy.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* A StatefulSetSpec is the specification of a StatefulSet.\n*/\nexport class V1StatefulSetSpec {\n static getAttributeTypeMap() {\n return V1StatefulSetSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1StatefulSetSpec.discriminator = undefined;\nV1StatefulSetSpec.mapping = undefined;\nV1StatefulSetSpec.attributeTypeMap = [\n {\n \"name\": \"minReadySeconds\",\n \"baseName\": \"minReadySeconds\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"ordinals\",\n \"baseName\": \"ordinals\",\n \"type\": \"V1StatefulSetOrdinals\",\n \"format\": \"\"\n },\n {\n \"name\": \"persistentVolumeClaimRetentionPolicy\",\n \"baseName\": \"persistentVolumeClaimRetentionPolicy\",\n \"type\": \"V1StatefulSetPersistentVolumeClaimRetentionPolicy\",\n \"format\": \"\"\n },\n {\n \"name\": \"podManagementPolicy\",\n \"baseName\": \"podManagementPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"replicas\",\n \"baseName\": \"replicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"revisionHistoryLimit\",\n \"baseName\": \"revisionHistoryLimit\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"selector\",\n \"baseName\": \"selector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"serviceName\",\n \"baseName\": \"serviceName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"template\",\n \"baseName\": \"template\",\n \"type\": \"V1PodTemplateSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"updateStrategy\",\n \"baseName\": \"updateStrategy\",\n \"type\": \"V1StatefulSetUpdateStrategy\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeClaimTemplates\",\n \"baseName\": \"volumeClaimTemplates\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1StatefulSetSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* StatefulSetStatus represents the current state of a StatefulSet.\n*/\nexport class V1StatefulSetStatus {\n static getAttributeTypeMap() {\n return V1StatefulSetStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1StatefulSetStatus.discriminator = undefined;\nV1StatefulSetStatus.mapping = undefined;\nV1StatefulSetStatus.attributeTypeMap = [\n {\n \"name\": \"availableReplicas\",\n \"baseName\": \"availableReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"collisionCount\",\n \"baseName\": \"collisionCount\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"currentReplicas\",\n \"baseName\": \"currentReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"currentRevision\",\n \"baseName\": \"currentRevision\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"observedGeneration\",\n \"baseName\": \"observedGeneration\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"readyReplicas\",\n \"baseName\": \"readyReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"replicas\",\n \"baseName\": \"replicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"updateRevision\",\n \"baseName\": \"updateRevision\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"updatedReplicas\",\n \"baseName\": \"updatedReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1StatefulSetStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.\n*/\nexport class V1StatefulSetUpdateStrategy {\n static getAttributeTypeMap() {\n return V1StatefulSetUpdateStrategy.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1StatefulSetUpdateStrategy.discriminator = undefined;\nV1StatefulSetUpdateStrategy.mapping = undefined;\nV1StatefulSetUpdateStrategy.attributeTypeMap = [\n {\n \"name\": \"rollingUpdate\",\n \"baseName\": \"rollingUpdate\",\n \"type\": \"V1RollingUpdateStatefulSetStrategy\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1StatefulSetUpdateStrategy.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Status is a return value for calls that don\\'t return other objects.\n*/\nexport class V1Status {\n static getAttributeTypeMap() {\n return V1Status.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Status.discriminator = undefined;\nV1Status.mapping = undefined;\nV1Status.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"code\",\n \"baseName\": \"code\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"details\",\n \"baseName\": \"details\",\n \"type\": \"V1StatusDetails\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Status.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.\n*/\nexport class V1StatusCause {\n static getAttributeTypeMap() {\n return V1StatusCause.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1StatusCause.discriminator = undefined;\nV1StatusCause.mapping = undefined;\nV1StatusCause.attributeTypeMap = [\n {\n \"name\": \"field\",\n \"baseName\": \"field\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1StatusCause.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.\n*/\nexport class V1StatusDetails {\n static getAttributeTypeMap() {\n return V1StatusDetails.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1StatusDetails.discriminator = undefined;\nV1StatusDetails.mapping = undefined;\nV1StatusDetails.attributeTypeMap = [\n {\n \"name\": \"causes\",\n \"baseName\": \"causes\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"group\",\n \"baseName\": \"group\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"retryAfterSeconds\",\n \"baseName\": \"retryAfterSeconds\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"uid\",\n \"baseName\": \"uid\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1StatusDetails.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned. StorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.\n*/\nexport class V1StorageClass {\n static getAttributeTypeMap() {\n return V1StorageClass.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1StorageClass.discriminator = undefined;\nV1StorageClass.mapping = undefined;\nV1StorageClass.attributeTypeMap = [\n {\n \"name\": \"allowVolumeExpansion\",\n \"baseName\": \"allowVolumeExpansion\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"allowedTopologies\",\n \"baseName\": \"allowedTopologies\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"mountOptions\",\n \"baseName\": \"mountOptions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"parameters\",\n \"baseName\": \"parameters\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"provisioner\",\n \"baseName\": \"provisioner\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reclaimPolicy\",\n \"baseName\": \"reclaimPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeBindingMode\",\n \"baseName\": \"volumeBindingMode\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1StorageClass.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* StorageClassList is a collection of storage classes.\n*/\nexport class V1StorageClassList {\n static getAttributeTypeMap() {\n return V1StorageClassList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1StorageClassList.discriminator = undefined;\nV1StorageClassList.mapping = undefined;\nV1StorageClassList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1StorageClassList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a StorageOS persistent volume resource.\n*/\nexport class V1StorageOSPersistentVolumeSource {\n static getAttributeTypeMap() {\n return V1StorageOSPersistentVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1StorageOSPersistentVolumeSource.discriminator = undefined;\nV1StorageOSPersistentVolumeSource.mapping = undefined;\nV1StorageOSPersistentVolumeSource.attributeTypeMap = [\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretRef\",\n \"baseName\": \"secretRef\",\n \"type\": \"V1ObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeName\",\n \"baseName\": \"volumeName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeNamespace\",\n \"baseName\": \"volumeNamespace\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1StorageOSPersistentVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a StorageOS persistent volume resource.\n*/\nexport class V1StorageOSVolumeSource {\n static getAttributeTypeMap() {\n return V1StorageOSVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1StorageOSVolumeSource.discriminator = undefined;\nV1StorageOSVolumeSource.mapping = undefined;\nV1StorageOSVolumeSource.attributeTypeMap = [\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"secretRef\",\n \"baseName\": \"secretRef\",\n \"type\": \"V1LocalObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeName\",\n \"baseName\": \"volumeName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumeNamespace\",\n \"baseName\": \"volumeNamespace\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1StorageOSVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SubjectAccessReview checks whether or not a user or group can perform an action.\n*/\nexport class V1SubjectAccessReview {\n static getAttributeTypeMap() {\n return V1SubjectAccessReview.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SubjectAccessReview.discriminator = undefined;\nV1SubjectAccessReview.mapping = undefined;\nV1SubjectAccessReview.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1SubjectAccessReviewSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1SubjectAccessReviewStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SubjectAccessReview.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\n*/\nexport class V1SubjectAccessReviewSpec {\n static getAttributeTypeMap() {\n return V1SubjectAccessReviewSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SubjectAccessReviewSpec.discriminator = undefined;\nV1SubjectAccessReviewSpec.mapping = undefined;\nV1SubjectAccessReviewSpec.attributeTypeMap = [\n {\n \"name\": \"extra\",\n \"baseName\": \"extra\",\n \"type\": \"{ [key: string]: Array; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"groups\",\n \"baseName\": \"groups\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"nonResourceAttributes\",\n \"baseName\": \"nonResourceAttributes\",\n \"type\": \"V1NonResourceAttributes\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceAttributes\",\n \"baseName\": \"resourceAttributes\",\n \"type\": \"V1ResourceAttributes\",\n \"format\": \"\"\n },\n {\n \"name\": \"uid\",\n \"baseName\": \"uid\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"user\",\n \"baseName\": \"user\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SubjectAccessReviewSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SubjectAccessReviewStatus\n*/\nexport class V1SubjectAccessReviewStatus {\n static getAttributeTypeMap() {\n return V1SubjectAccessReviewStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SubjectAccessReviewStatus.discriminator = undefined;\nV1SubjectAccessReviewStatus.mapping = undefined;\nV1SubjectAccessReviewStatus.attributeTypeMap = [\n {\n \"name\": \"allowed\",\n \"baseName\": \"allowed\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"denied\",\n \"baseName\": \"denied\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"evaluationError\",\n \"baseName\": \"evaluationError\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SubjectAccessReviewStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it\\'s safe to assume the subject has that permission, even if that list is incomplete.\n*/\nexport class V1SubjectRulesReviewStatus {\n static getAttributeTypeMap() {\n return V1SubjectRulesReviewStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SubjectRulesReviewStatus.discriminator = undefined;\nV1SubjectRulesReviewStatus.mapping = undefined;\nV1SubjectRulesReviewStatus.attributeTypeMap = [\n {\n \"name\": \"evaluationError\",\n \"baseName\": \"evaluationError\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"incomplete\",\n \"baseName\": \"incomplete\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"nonResourceRules\",\n \"baseName\": \"nonResourceRules\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceRules\",\n \"baseName\": \"resourceRules\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SubjectRulesReviewStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SuccessPolicy describes when a Job can be declared as succeeded based on the success of some indexes.\n*/\nexport class V1SuccessPolicy {\n static getAttributeTypeMap() {\n return V1SuccessPolicy.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SuccessPolicy.discriminator = undefined;\nV1SuccessPolicy.mapping = undefined;\nV1SuccessPolicy.attributeTypeMap = [\n {\n \"name\": \"rules\",\n \"baseName\": \"rules\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SuccessPolicy.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* SuccessPolicyRule describes rule for declaring a Job as succeeded. Each rule must have at least one of the \\\"succeededIndexes\\\" or \\\"succeededCount\\\" specified.\n*/\nexport class V1SuccessPolicyRule {\n static getAttributeTypeMap() {\n return V1SuccessPolicyRule.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1SuccessPolicyRule.discriminator = undefined;\nV1SuccessPolicyRule.mapping = undefined;\nV1SuccessPolicyRule.attributeTypeMap = [\n {\n \"name\": \"succeededCount\",\n \"baseName\": \"succeededCount\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"succeededIndexes\",\n \"baseName\": \"succeededIndexes\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1SuccessPolicyRule.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Sysctl defines a kernel parameter to be set\n*/\nexport class V1Sysctl {\n static getAttributeTypeMap() {\n return V1Sysctl.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Sysctl.discriminator = undefined;\nV1Sysctl.mapping = undefined;\nV1Sysctl.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Sysctl.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* TCPSocketAction describes an action based on opening a socket\n*/\nexport class V1TCPSocketAction {\n static getAttributeTypeMap() {\n return V1TCPSocketAction.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1TCPSocketAction.discriminator = undefined;\nV1TCPSocketAction.mapping = undefined;\nV1TCPSocketAction.attributeTypeMap = [\n {\n \"name\": \"host\",\n \"baseName\": \"host\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"port\",\n \"baseName\": \"port\",\n \"type\": \"IntOrString\",\n \"format\": \"int-or-string\"\n }\n];\n//# sourceMappingURL=V1TCPSocketAction.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* The node this Taint is attached to has the \\\"effect\\\" on any pod that does not tolerate the Taint.\n*/\nexport class V1Taint {\n static getAttributeTypeMap() {\n return V1Taint.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Taint.discriminator = undefined;\nV1Taint.mapping = undefined;\nV1Taint.attributeTypeMap = [\n {\n \"name\": \"effect\",\n \"baseName\": \"effect\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"key\",\n \"baseName\": \"key\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"timeAdded\",\n \"baseName\": \"timeAdded\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Taint.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* TokenRequestSpec contains client provided parameters of a token request.\n*/\nexport class V1TokenRequestSpec {\n static getAttributeTypeMap() {\n return V1TokenRequestSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1TokenRequestSpec.discriminator = undefined;\nV1TokenRequestSpec.mapping = undefined;\nV1TokenRequestSpec.attributeTypeMap = [\n {\n \"name\": \"audiences\",\n \"baseName\": \"audiences\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"boundObjectRef\",\n \"baseName\": \"boundObjectRef\",\n \"type\": \"V1BoundObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"expirationSeconds\",\n \"baseName\": \"expirationSeconds\",\n \"type\": \"number\",\n \"format\": \"int64\"\n }\n];\n//# sourceMappingURL=V1TokenRequestSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* TokenRequestStatus is the result of a token request.\n*/\nexport class V1TokenRequestStatus {\n static getAttributeTypeMap() {\n return V1TokenRequestStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1TokenRequestStatus.discriminator = undefined;\nV1TokenRequestStatus.mapping = undefined;\nV1TokenRequestStatus.attributeTypeMap = [\n {\n \"name\": \"expirationTimestamp\",\n \"baseName\": \"expirationTimestamp\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"token\",\n \"baseName\": \"token\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1TokenRequestStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.\n*/\nexport class V1TokenReview {\n static getAttributeTypeMap() {\n return V1TokenReview.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1TokenReview.discriminator = undefined;\nV1TokenReview.mapping = undefined;\nV1TokenReview.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1TokenReviewSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1TokenReviewStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1TokenReview.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* TokenReviewSpec is a description of the token authentication request.\n*/\nexport class V1TokenReviewSpec {\n static getAttributeTypeMap() {\n return V1TokenReviewSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1TokenReviewSpec.discriminator = undefined;\nV1TokenReviewSpec.mapping = undefined;\nV1TokenReviewSpec.attributeTypeMap = [\n {\n \"name\": \"audiences\",\n \"baseName\": \"audiences\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"token\",\n \"baseName\": \"token\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1TokenReviewSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* TokenReviewStatus is the result of the token authentication request.\n*/\nexport class V1TokenReviewStatus {\n static getAttributeTypeMap() {\n return V1TokenReviewStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1TokenReviewStatus.discriminator = undefined;\nV1TokenReviewStatus.mapping = undefined;\nV1TokenReviewStatus.attributeTypeMap = [\n {\n \"name\": \"audiences\",\n \"baseName\": \"audiences\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"authenticated\",\n \"baseName\": \"authenticated\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"error\",\n \"baseName\": \"error\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"user\",\n \"baseName\": \"user\",\n \"type\": \"V1UserInfo\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1TokenReviewStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator .\n*/\nexport class V1Toleration {\n static getAttributeTypeMap() {\n return V1Toleration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Toleration.discriminator = undefined;\nV1Toleration.mapping = undefined;\nV1Toleration.attributeTypeMap = [\n {\n \"name\": \"effect\",\n \"baseName\": \"effect\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"key\",\n \"baseName\": \"key\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"operator\",\n \"baseName\": \"operator\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"tolerationSeconds\",\n \"baseName\": \"tolerationSeconds\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Toleration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.\n*/\nexport class V1TopologySelectorLabelRequirement {\n static getAttributeTypeMap() {\n return V1TopologySelectorLabelRequirement.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1TopologySelectorLabelRequirement.discriminator = undefined;\nV1TopologySelectorLabelRequirement.mapping = undefined;\nV1TopologySelectorLabelRequirement.attributeTypeMap = [\n {\n \"name\": \"key\",\n \"baseName\": \"key\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"values\",\n \"baseName\": \"values\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1TopologySelectorLabelRequirement.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.\n*/\nexport class V1TopologySelectorTerm {\n static getAttributeTypeMap() {\n return V1TopologySelectorTerm.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1TopologySelectorTerm.discriminator = undefined;\nV1TopologySelectorTerm.mapping = undefined;\nV1TopologySelectorTerm.attributeTypeMap = [\n {\n \"name\": \"matchLabelExpressions\",\n \"baseName\": \"matchLabelExpressions\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1TopologySelectorTerm.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* TopologySpreadConstraint specifies how to spread matching pods among the given topology.\n*/\nexport class V1TopologySpreadConstraint {\n static getAttributeTypeMap() {\n return V1TopologySpreadConstraint.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1TopologySpreadConstraint.discriminator = undefined;\nV1TopologySpreadConstraint.mapping = undefined;\nV1TopologySpreadConstraint.attributeTypeMap = [\n {\n \"name\": \"labelSelector\",\n \"baseName\": \"labelSelector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"matchLabelKeys\",\n \"baseName\": \"matchLabelKeys\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"maxSkew\",\n \"baseName\": \"maxSkew\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"minDomains\",\n \"baseName\": \"minDomains\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"nodeAffinityPolicy\",\n \"baseName\": \"nodeAffinityPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeTaintsPolicy\",\n \"baseName\": \"nodeTaintsPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"topologyKey\",\n \"baseName\": \"topologyKey\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"whenUnsatisfiable\",\n \"baseName\": \"whenUnsatisfiable\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1TopologySpreadConstraint.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* TypeChecking contains results of type checking the expressions in the ValidatingAdmissionPolicy\n*/\nexport class V1TypeChecking {\n static getAttributeTypeMap() {\n return V1TypeChecking.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1TypeChecking.discriminator = undefined;\nV1TypeChecking.mapping = undefined;\nV1TypeChecking.attributeTypeMap = [\n {\n \"name\": \"expressionWarnings\",\n \"baseName\": \"expressionWarnings\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1TypeChecking.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.\n*/\nexport class V1TypedLocalObjectReference {\n static getAttributeTypeMap() {\n return V1TypedLocalObjectReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1TypedLocalObjectReference.discriminator = undefined;\nV1TypedLocalObjectReference.mapping = undefined;\nV1TypedLocalObjectReference.attributeTypeMap = [\n {\n \"name\": \"apiGroup\",\n \"baseName\": \"apiGroup\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1TypedLocalObjectReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* TypedObjectReference contains enough information to let you locate the typed referenced object\n*/\nexport class V1TypedObjectReference {\n static getAttributeTypeMap() {\n return V1TypedObjectReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1TypedObjectReference.discriminator = undefined;\nV1TypedObjectReference.mapping = undefined;\nV1TypedObjectReference.attributeTypeMap = [\n {\n \"name\": \"apiGroup\",\n \"baseName\": \"apiGroup\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespace\",\n \"baseName\": \"namespace\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1TypedObjectReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* UncountedTerminatedPods holds UIDs of Pods that have terminated but haven\\'t been accounted in Job status counters.\n*/\nexport class V1UncountedTerminatedPods {\n static getAttributeTypeMap() {\n return V1UncountedTerminatedPods.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1UncountedTerminatedPods.discriminator = undefined;\nV1UncountedTerminatedPods.mapping = undefined;\nV1UncountedTerminatedPods.attributeTypeMap = [\n {\n \"name\": \"failed\",\n \"baseName\": \"failed\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"succeeded\",\n \"baseName\": \"succeeded\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1UncountedTerminatedPods.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* UserInfo holds the information about the user needed to implement the user.Info interface.\n*/\nexport class V1UserInfo {\n static getAttributeTypeMap() {\n return V1UserInfo.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1UserInfo.discriminator = undefined;\nV1UserInfo.mapping = undefined;\nV1UserInfo.attributeTypeMap = [\n {\n \"name\": \"extra\",\n \"baseName\": \"extra\",\n \"type\": \"{ [key: string]: Array; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"groups\",\n \"baseName\": \"groups\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"uid\",\n \"baseName\": \"uid\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"username\",\n \"baseName\": \"username\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1UserInfo.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* UserSubject holds detailed information for user-kind subject.\n*/\nexport class V1UserSubject {\n static getAttributeTypeMap() {\n return V1UserSubject.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1UserSubject.discriminator = undefined;\nV1UserSubject.mapping = undefined;\nV1UserSubject.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1UserSubject.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.\n*/\nexport class V1ValidatingAdmissionPolicy {\n static getAttributeTypeMap() {\n return V1ValidatingAdmissionPolicy.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ValidatingAdmissionPolicy.discriminator = undefined;\nV1ValidatingAdmissionPolicy.mapping = undefined;\nV1ValidatingAdmissionPolicy.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1ValidatingAdmissionPolicySpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1ValidatingAdmissionPolicyStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ValidatingAdmissionPolicy.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don\\'t use params, otherwise N is the number of parameters selected by the binding. The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget.\n*/\nexport class V1ValidatingAdmissionPolicyBinding {\n static getAttributeTypeMap() {\n return V1ValidatingAdmissionPolicyBinding.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ValidatingAdmissionPolicyBinding.discriminator = undefined;\nV1ValidatingAdmissionPolicyBinding.mapping = undefined;\nV1ValidatingAdmissionPolicyBinding.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1ValidatingAdmissionPolicyBindingSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ValidatingAdmissionPolicyBinding.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.\n*/\nexport class V1ValidatingAdmissionPolicyBindingList {\n static getAttributeTypeMap() {\n return V1ValidatingAdmissionPolicyBindingList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ValidatingAdmissionPolicyBindingList.discriminator = undefined;\nV1ValidatingAdmissionPolicyBindingList.mapping = undefined;\nV1ValidatingAdmissionPolicyBindingList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ValidatingAdmissionPolicyBindingList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.\n*/\nexport class V1ValidatingAdmissionPolicyBindingSpec {\n static getAttributeTypeMap() {\n return V1ValidatingAdmissionPolicyBindingSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ValidatingAdmissionPolicyBindingSpec.discriminator = undefined;\nV1ValidatingAdmissionPolicyBindingSpec.mapping = undefined;\nV1ValidatingAdmissionPolicyBindingSpec.attributeTypeMap = [\n {\n \"name\": \"matchResources\",\n \"baseName\": \"matchResources\",\n \"type\": \"V1MatchResources\",\n \"format\": \"\"\n },\n {\n \"name\": \"paramRef\",\n \"baseName\": \"paramRef\",\n \"type\": \"V1ParamRef\",\n \"format\": \"\"\n },\n {\n \"name\": \"policyName\",\n \"baseName\": \"policyName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"validationActions\",\n \"baseName\": \"validationActions\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ValidatingAdmissionPolicyBindingSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.\n*/\nexport class V1ValidatingAdmissionPolicyList {\n static getAttributeTypeMap() {\n return V1ValidatingAdmissionPolicyList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ValidatingAdmissionPolicyList.discriminator = undefined;\nV1ValidatingAdmissionPolicyList.mapping = undefined;\nV1ValidatingAdmissionPolicyList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ValidatingAdmissionPolicyList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.\n*/\nexport class V1ValidatingAdmissionPolicySpec {\n static getAttributeTypeMap() {\n return V1ValidatingAdmissionPolicySpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ValidatingAdmissionPolicySpec.discriminator = undefined;\nV1ValidatingAdmissionPolicySpec.mapping = undefined;\nV1ValidatingAdmissionPolicySpec.attributeTypeMap = [\n {\n \"name\": \"auditAnnotations\",\n \"baseName\": \"auditAnnotations\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"failurePolicy\",\n \"baseName\": \"failurePolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"matchConditions\",\n \"baseName\": \"matchConditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"matchConstraints\",\n \"baseName\": \"matchConstraints\",\n \"type\": \"V1MatchResources\",\n \"format\": \"\"\n },\n {\n \"name\": \"paramKind\",\n \"baseName\": \"paramKind\",\n \"type\": \"V1ParamKind\",\n \"format\": \"\"\n },\n {\n \"name\": \"validations\",\n \"baseName\": \"validations\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"variables\",\n \"baseName\": \"variables\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ValidatingAdmissionPolicySpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ValidatingAdmissionPolicyStatus represents the status of an admission validation policy.\n*/\nexport class V1ValidatingAdmissionPolicyStatus {\n static getAttributeTypeMap() {\n return V1ValidatingAdmissionPolicyStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ValidatingAdmissionPolicyStatus.discriminator = undefined;\nV1ValidatingAdmissionPolicyStatus.mapping = undefined;\nV1ValidatingAdmissionPolicyStatus.attributeTypeMap = [\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"observedGeneration\",\n \"baseName\": \"observedGeneration\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"typeChecking\",\n \"baseName\": \"typeChecking\",\n \"type\": \"V1TypeChecking\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ValidatingAdmissionPolicyStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ValidatingWebhook describes an admission webhook and the resources and operations it applies to.\n*/\nexport class V1ValidatingWebhook {\n static getAttributeTypeMap() {\n return V1ValidatingWebhook.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ValidatingWebhook.discriminator = undefined;\nV1ValidatingWebhook.mapping = undefined;\nV1ValidatingWebhook.attributeTypeMap = [\n {\n \"name\": \"admissionReviewVersions\",\n \"baseName\": \"admissionReviewVersions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"clientConfig\",\n \"baseName\": \"clientConfig\",\n \"type\": \"AdmissionregistrationV1WebhookClientConfig\",\n \"format\": \"\"\n },\n {\n \"name\": \"failurePolicy\",\n \"baseName\": \"failurePolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"matchConditions\",\n \"baseName\": \"matchConditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"matchPolicy\",\n \"baseName\": \"matchPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespaceSelector\",\n \"baseName\": \"namespaceSelector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"objectSelector\",\n \"baseName\": \"objectSelector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"rules\",\n \"baseName\": \"rules\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"sideEffects\",\n \"baseName\": \"sideEffects\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"timeoutSeconds\",\n \"baseName\": \"timeoutSeconds\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1ValidatingWebhook.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.\n*/\nexport class V1ValidatingWebhookConfiguration {\n static getAttributeTypeMap() {\n return V1ValidatingWebhookConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ValidatingWebhookConfiguration.discriminator = undefined;\nV1ValidatingWebhookConfiguration.mapping = undefined;\nV1ValidatingWebhookConfiguration.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"webhooks\",\n \"baseName\": \"webhooks\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ValidatingWebhookConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.\n*/\nexport class V1ValidatingWebhookConfigurationList {\n static getAttributeTypeMap() {\n return V1ValidatingWebhookConfigurationList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ValidatingWebhookConfigurationList.discriminator = undefined;\nV1ValidatingWebhookConfigurationList.mapping = undefined;\nV1ValidatingWebhookConfigurationList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ValidatingWebhookConfigurationList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Validation specifies the CEL expression which is used to apply the validation.\n*/\nexport class V1Validation {\n static getAttributeTypeMap() {\n return V1Validation.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Validation.discriminator = undefined;\nV1Validation.mapping = undefined;\nV1Validation.attributeTypeMap = [\n {\n \"name\": \"expression\",\n \"baseName\": \"expression\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"messageExpression\",\n \"baseName\": \"messageExpression\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Validation.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ValidationRule describes a validation rule written in the CEL expression language.\n*/\nexport class V1ValidationRule {\n static getAttributeTypeMap() {\n return V1ValidationRule.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1ValidationRule.discriminator = undefined;\nV1ValidationRule.mapping = undefined;\nV1ValidationRule.attributeTypeMap = [\n {\n \"name\": \"fieldPath\",\n \"baseName\": \"fieldPath\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"messageExpression\",\n \"baseName\": \"messageExpression\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"optionalOldSelf\",\n \"baseName\": \"optionalOldSelf\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"rule\",\n \"baseName\": \"rule\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1ValidationRule.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Variable is the definition of a variable that is used for composition. A variable is defined as a named expression.\n*/\nexport class V1Variable {\n static getAttributeTypeMap() {\n return V1Variable.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Variable.discriminator = undefined;\nV1Variable.mapping = undefined;\nV1Variable.attributeTypeMap = [\n {\n \"name\": \"expression\",\n \"baseName\": \"expression\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Variable.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Volume represents a named volume in a pod that may be accessed by any container in the pod.\n*/\nexport class V1Volume {\n static getAttributeTypeMap() {\n return V1Volume.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1Volume.discriminator = undefined;\nV1Volume.mapping = undefined;\nV1Volume.attributeTypeMap = [\n {\n \"name\": \"awsElasticBlockStore\",\n \"baseName\": \"awsElasticBlockStore\",\n \"type\": \"V1AWSElasticBlockStoreVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"azureDisk\",\n \"baseName\": \"azureDisk\",\n \"type\": \"V1AzureDiskVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"azureFile\",\n \"baseName\": \"azureFile\",\n \"type\": \"V1AzureFileVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"cephfs\",\n \"baseName\": \"cephfs\",\n \"type\": \"V1CephFSVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"cinder\",\n \"baseName\": \"cinder\",\n \"type\": \"V1CinderVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"configMap\",\n \"baseName\": \"configMap\",\n \"type\": \"V1ConfigMapVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"csi\",\n \"baseName\": \"csi\",\n \"type\": \"V1CSIVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"downwardAPI\",\n \"baseName\": \"downwardAPI\",\n \"type\": \"V1DownwardAPIVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"emptyDir\",\n \"baseName\": \"emptyDir\",\n \"type\": \"V1EmptyDirVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"ephemeral\",\n \"baseName\": \"ephemeral\",\n \"type\": \"V1EphemeralVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"fc\",\n \"baseName\": \"fc\",\n \"type\": \"V1FCVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"flexVolume\",\n \"baseName\": \"flexVolume\",\n \"type\": \"V1FlexVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"flocker\",\n \"baseName\": \"flocker\",\n \"type\": \"V1FlockerVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"gcePersistentDisk\",\n \"baseName\": \"gcePersistentDisk\",\n \"type\": \"V1GCEPersistentDiskVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"gitRepo\",\n \"baseName\": \"gitRepo\",\n \"type\": \"V1GitRepoVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"glusterfs\",\n \"baseName\": \"glusterfs\",\n \"type\": \"V1GlusterfsVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"hostPath\",\n \"baseName\": \"hostPath\",\n \"type\": \"V1HostPathVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"image\",\n \"baseName\": \"image\",\n \"type\": \"V1ImageVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"iscsi\",\n \"baseName\": \"iscsi\",\n \"type\": \"V1ISCSIVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nfs\",\n \"baseName\": \"nfs\",\n \"type\": \"V1NFSVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"persistentVolumeClaim\",\n \"baseName\": \"persistentVolumeClaim\",\n \"type\": \"V1PersistentVolumeClaimVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"photonPersistentDisk\",\n \"baseName\": \"photonPersistentDisk\",\n \"type\": \"V1PhotonPersistentDiskVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"portworxVolume\",\n \"baseName\": \"portworxVolume\",\n \"type\": \"V1PortworxVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"projected\",\n \"baseName\": \"projected\",\n \"type\": \"V1ProjectedVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"quobyte\",\n \"baseName\": \"quobyte\",\n \"type\": \"V1QuobyteVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"rbd\",\n \"baseName\": \"rbd\",\n \"type\": \"V1RBDVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"scaleIO\",\n \"baseName\": \"scaleIO\",\n \"type\": \"V1ScaleIOVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"secret\",\n \"baseName\": \"secret\",\n \"type\": \"V1SecretVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"storageos\",\n \"baseName\": \"storageos\",\n \"type\": \"V1StorageOSVolumeSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"vsphereVolume\",\n \"baseName\": \"vsphereVolume\",\n \"type\": \"V1VsphereVirtualDiskVolumeSource\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1Volume.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node. VolumeAttachment objects are non-namespaced.\n*/\nexport class V1VolumeAttachment {\n static getAttributeTypeMap() {\n return V1VolumeAttachment.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1VolumeAttachment.discriminator = undefined;\nV1VolumeAttachment.mapping = undefined;\nV1VolumeAttachment.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1VolumeAttachmentSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1VolumeAttachmentStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1VolumeAttachment.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* VolumeAttachmentList is a collection of VolumeAttachment objects.\n*/\nexport class V1VolumeAttachmentList {\n static getAttributeTypeMap() {\n return V1VolumeAttachmentList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1VolumeAttachmentList.discriminator = undefined;\nV1VolumeAttachmentList.mapping = undefined;\nV1VolumeAttachmentList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1VolumeAttachmentList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set.\n*/\nexport class V1VolumeAttachmentSource {\n static getAttributeTypeMap() {\n return V1VolumeAttachmentSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1VolumeAttachmentSource.discriminator = undefined;\nV1VolumeAttachmentSource.mapping = undefined;\nV1VolumeAttachmentSource.attributeTypeMap = [\n {\n \"name\": \"inlineVolumeSpec\",\n \"baseName\": \"inlineVolumeSpec\",\n \"type\": \"V1PersistentVolumeSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"persistentVolumeName\",\n \"baseName\": \"persistentVolumeName\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1VolumeAttachmentSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* VolumeAttachmentSpec is the specification of a VolumeAttachment request.\n*/\nexport class V1VolumeAttachmentSpec {\n static getAttributeTypeMap() {\n return V1VolumeAttachmentSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1VolumeAttachmentSpec.discriminator = undefined;\nV1VolumeAttachmentSpec.mapping = undefined;\nV1VolumeAttachmentSpec.attributeTypeMap = [\n {\n \"name\": \"attacher\",\n \"baseName\": \"attacher\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeName\",\n \"baseName\": \"nodeName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"source\",\n \"baseName\": \"source\",\n \"type\": \"V1VolumeAttachmentSource\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1VolumeAttachmentSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* VolumeAttachmentStatus is the status of a VolumeAttachment request.\n*/\nexport class V1VolumeAttachmentStatus {\n static getAttributeTypeMap() {\n return V1VolumeAttachmentStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1VolumeAttachmentStatus.discriminator = undefined;\nV1VolumeAttachmentStatus.mapping = undefined;\nV1VolumeAttachmentStatus.attributeTypeMap = [\n {\n \"name\": \"attachError\",\n \"baseName\": \"attachError\",\n \"type\": \"V1VolumeError\",\n \"format\": \"\"\n },\n {\n \"name\": \"attached\",\n \"baseName\": \"attached\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"attachmentMetadata\",\n \"baseName\": \"attachmentMetadata\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"detachError\",\n \"baseName\": \"detachError\",\n \"type\": \"V1VolumeError\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1VolumeAttachmentStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* volumeDevice describes a mapping of a raw block device within a container.\n*/\nexport class V1VolumeDevice {\n static getAttributeTypeMap() {\n return V1VolumeDevice.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1VolumeDevice.discriminator = undefined;\nV1VolumeDevice.mapping = undefined;\nV1VolumeDevice.attributeTypeMap = [\n {\n \"name\": \"devicePath\",\n \"baseName\": \"devicePath\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1VolumeDevice.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* VolumeError captures an error encountered during a volume operation.\n*/\nexport class V1VolumeError {\n static getAttributeTypeMap() {\n return V1VolumeError.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1VolumeError.discriminator = undefined;\nV1VolumeError.mapping = undefined;\nV1VolumeError.attributeTypeMap = [\n {\n \"name\": \"errorCode\",\n \"baseName\": \"errorCode\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"time\",\n \"baseName\": \"time\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n }\n];\n//# sourceMappingURL=V1VolumeError.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* VolumeMount describes a mounting of a Volume within a container.\n*/\nexport class V1VolumeMount {\n static getAttributeTypeMap() {\n return V1VolumeMount.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1VolumeMount.discriminator = undefined;\nV1VolumeMount.mapping = undefined;\nV1VolumeMount.attributeTypeMap = [\n {\n \"name\": \"mountPath\",\n \"baseName\": \"mountPath\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"mountPropagation\",\n \"baseName\": \"mountPropagation\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"recursiveReadOnly\",\n \"baseName\": \"recursiveReadOnly\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"subPath\",\n \"baseName\": \"subPath\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"subPathExpr\",\n \"baseName\": \"subPathExpr\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1VolumeMount.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* VolumeMountStatus shows status of volume mounts.\n*/\nexport class V1VolumeMountStatus {\n static getAttributeTypeMap() {\n return V1VolumeMountStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1VolumeMountStatus.discriminator = undefined;\nV1VolumeMountStatus.mapping = undefined;\nV1VolumeMountStatus.attributeTypeMap = [\n {\n \"name\": \"mountPath\",\n \"baseName\": \"mountPath\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"readOnly\",\n \"baseName\": \"readOnly\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"recursiveReadOnly\",\n \"baseName\": \"recursiveReadOnly\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1VolumeMountStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.\n*/\nexport class V1VolumeNodeAffinity {\n static getAttributeTypeMap() {\n return V1VolumeNodeAffinity.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1VolumeNodeAffinity.discriminator = undefined;\nV1VolumeNodeAffinity.mapping = undefined;\nV1VolumeNodeAffinity.attributeTypeMap = [\n {\n \"name\": \"required\",\n \"baseName\": \"required\",\n \"type\": \"V1NodeSelector\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1VolumeNodeAffinity.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* VolumeNodeResources is a set of resource limits for scheduling of volumes.\n*/\nexport class V1VolumeNodeResources {\n static getAttributeTypeMap() {\n return V1VolumeNodeResources.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1VolumeNodeResources.discriminator = undefined;\nV1VolumeNodeResources.mapping = undefined;\nV1VolumeNodeResources.attributeTypeMap = [\n {\n \"name\": \"count\",\n \"baseName\": \"count\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1VolumeNodeResources.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Projection that may be projected along with other supported volume types. Exactly one of these fields must be set.\n*/\nexport class V1VolumeProjection {\n static getAttributeTypeMap() {\n return V1VolumeProjection.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1VolumeProjection.discriminator = undefined;\nV1VolumeProjection.mapping = undefined;\nV1VolumeProjection.attributeTypeMap = [\n {\n \"name\": \"clusterTrustBundle\",\n \"baseName\": \"clusterTrustBundle\",\n \"type\": \"V1ClusterTrustBundleProjection\",\n \"format\": \"\"\n },\n {\n \"name\": \"configMap\",\n \"baseName\": \"configMap\",\n \"type\": \"V1ConfigMapProjection\",\n \"format\": \"\"\n },\n {\n \"name\": \"downwardAPI\",\n \"baseName\": \"downwardAPI\",\n \"type\": \"V1DownwardAPIProjection\",\n \"format\": \"\"\n },\n {\n \"name\": \"secret\",\n \"baseName\": \"secret\",\n \"type\": \"V1SecretProjection\",\n \"format\": \"\"\n },\n {\n \"name\": \"serviceAccountToken\",\n \"baseName\": \"serviceAccountToken\",\n \"type\": \"V1ServiceAccountTokenProjection\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1VolumeProjection.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* VolumeResourceRequirements describes the storage resource requirements for a volume.\n*/\nexport class V1VolumeResourceRequirements {\n static getAttributeTypeMap() {\n return V1VolumeResourceRequirements.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1VolumeResourceRequirements.discriminator = undefined;\nV1VolumeResourceRequirements.mapping = undefined;\nV1VolumeResourceRequirements.attributeTypeMap = [\n {\n \"name\": \"limits\",\n \"baseName\": \"limits\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"requests\",\n \"baseName\": \"requests\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1VolumeResourceRequirements.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Represents a vSphere volume resource.\n*/\nexport class V1VsphereVirtualDiskVolumeSource {\n static getAttributeTypeMap() {\n return V1VsphereVirtualDiskVolumeSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1VsphereVirtualDiskVolumeSource.discriminator = undefined;\nV1VsphereVirtualDiskVolumeSource.mapping = undefined;\nV1VsphereVirtualDiskVolumeSource.attributeTypeMap = [\n {\n \"name\": \"fsType\",\n \"baseName\": \"fsType\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"storagePolicyID\",\n \"baseName\": \"storagePolicyID\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"storagePolicyName\",\n \"baseName\": \"storagePolicyName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"volumePath\",\n \"baseName\": \"volumePath\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1VsphereVirtualDiskVolumeSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Event represents a single event to a watched resource.\n*/\nexport class V1WatchEvent {\n static getAttributeTypeMap() {\n return V1WatchEvent.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1WatchEvent.discriminator = undefined;\nV1WatchEvent.mapping = undefined;\nV1WatchEvent.attributeTypeMap = [\n {\n \"name\": \"object\",\n \"baseName\": \"object\",\n \"type\": \"any\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1WatchEvent.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* WebhookConversion describes how to call a conversion webhook\n*/\nexport class V1WebhookConversion {\n static getAttributeTypeMap() {\n return V1WebhookConversion.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1WebhookConversion.discriminator = undefined;\nV1WebhookConversion.mapping = undefined;\nV1WebhookConversion.attributeTypeMap = [\n {\n \"name\": \"clientConfig\",\n \"baseName\": \"clientConfig\",\n \"type\": \"ApiextensionsV1WebhookClientConfig\",\n \"format\": \"\"\n },\n {\n \"name\": \"conversionReviewVersions\",\n \"baseName\": \"conversionReviewVersions\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1WebhookConversion.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\n*/\nexport class V1WeightedPodAffinityTerm {\n static getAttributeTypeMap() {\n return V1WeightedPodAffinityTerm.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1WeightedPodAffinityTerm.discriminator = undefined;\nV1WeightedPodAffinityTerm.mapping = undefined;\nV1WeightedPodAffinityTerm.attributeTypeMap = [\n {\n \"name\": \"podAffinityTerm\",\n \"baseName\": \"podAffinityTerm\",\n \"type\": \"V1PodAffinityTerm\",\n \"format\": \"\"\n },\n {\n \"name\": \"weight\",\n \"baseName\": \"weight\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V1WeightedPodAffinityTerm.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* WindowsSecurityContextOptions contain Windows-specific options and credentials.\n*/\nexport class V1WindowsSecurityContextOptions {\n static getAttributeTypeMap() {\n return V1WindowsSecurityContextOptions.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1WindowsSecurityContextOptions.discriminator = undefined;\nV1WindowsSecurityContextOptions.mapping = undefined;\nV1WindowsSecurityContextOptions.attributeTypeMap = [\n {\n \"name\": \"gmsaCredentialSpec\",\n \"baseName\": \"gmsaCredentialSpec\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"gmsaCredentialSpecName\",\n \"baseName\": \"gmsaCredentialSpecName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"hostProcess\",\n \"baseName\": \"hostProcess\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"runAsUserName\",\n \"baseName\": \"runAsUserName\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1WindowsSecurityContextOptions.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ApplyConfiguration defines the desired configuration values of an object.\n*/\nexport class V1alpha1ApplyConfiguration {\n static getAttributeTypeMap() {\n return V1alpha1ApplyConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1ApplyConfiguration.discriminator = undefined;\nV1alpha1ApplyConfiguration.mapping = undefined;\nV1alpha1ApplyConfiguration.attributeTypeMap = [\n {\n \"name\": \"expression\",\n \"baseName\": \"expression\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1ApplyConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ClusterTrustBundle is a cluster-scoped container for X.509 trust anchors (root certificates). ClusterTrustBundle objects are considered to be readable by any authenticated user in the cluster, because they can be mounted by pods using the `clusterTrustBundle` projection. All service accounts have read access to ClusterTrustBundles by default. Users who only have namespace-level access to a cluster can read ClusterTrustBundles by impersonating a serviceaccount that they have access to. It can be optionally associated with a particular assigner, in which case it contains one valid set of trust anchors for that signer. Signers may have multiple associated ClusterTrustBundles; each is an independent set of trust anchors for that signer. Admission control is used to enforce that only users with permissions on the signer can create or modify the corresponding bundle.\n*/\nexport class V1alpha1ClusterTrustBundle {\n static getAttributeTypeMap() {\n return V1alpha1ClusterTrustBundle.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1ClusterTrustBundle.discriminator = undefined;\nV1alpha1ClusterTrustBundle.mapping = undefined;\nV1alpha1ClusterTrustBundle.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1alpha1ClusterTrustBundleSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1ClusterTrustBundle.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ClusterTrustBundleList is a collection of ClusterTrustBundle objects\n*/\nexport class V1alpha1ClusterTrustBundleList {\n static getAttributeTypeMap() {\n return V1alpha1ClusterTrustBundleList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1ClusterTrustBundleList.discriminator = undefined;\nV1alpha1ClusterTrustBundleList.mapping = undefined;\nV1alpha1ClusterTrustBundleList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1ClusterTrustBundleList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ClusterTrustBundleSpec contains the signer and trust anchors.\n*/\nexport class V1alpha1ClusterTrustBundleSpec {\n static getAttributeTypeMap() {\n return V1alpha1ClusterTrustBundleSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1ClusterTrustBundleSpec.discriminator = undefined;\nV1alpha1ClusterTrustBundleSpec.mapping = undefined;\nV1alpha1ClusterTrustBundleSpec.attributeTypeMap = [\n {\n \"name\": \"signerName\",\n \"baseName\": \"signerName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"trustBundle\",\n \"baseName\": \"trustBundle\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1ClusterTrustBundleSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* The names of the group, the version, and the resource.\n*/\nexport class V1alpha1GroupVersionResource {\n static getAttributeTypeMap() {\n return V1alpha1GroupVersionResource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1GroupVersionResource.discriminator = undefined;\nV1alpha1GroupVersionResource.mapping = undefined;\nV1alpha1GroupVersionResource.attributeTypeMap = [\n {\n \"name\": \"group\",\n \"baseName\": \"group\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resource\",\n \"baseName\": \"resource\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"version\",\n \"baseName\": \"version\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1GroupVersionResource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* JSONPatch defines a JSON Patch.\n*/\nexport class V1alpha1JSONPatch {\n static getAttributeTypeMap() {\n return V1alpha1JSONPatch.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1JSONPatch.discriminator = undefined;\nV1alpha1JSONPatch.mapping = undefined;\nV1alpha1JSONPatch.attributeTypeMap = [\n {\n \"name\": \"expression\",\n \"baseName\": \"expression\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1JSONPatch.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nexport class V1alpha1MatchCondition {\n static getAttributeTypeMap() {\n return V1alpha1MatchCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1MatchCondition.discriminator = undefined;\nV1alpha1MatchCondition.mapping = undefined;\nV1alpha1MatchCondition.attributeTypeMap = [\n {\n \"name\": \"expression\",\n \"baseName\": \"expression\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1MatchCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n*/\nexport class V1alpha1MatchResources {\n static getAttributeTypeMap() {\n return V1alpha1MatchResources.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1MatchResources.discriminator = undefined;\nV1alpha1MatchResources.mapping = undefined;\nV1alpha1MatchResources.attributeTypeMap = [\n {\n \"name\": \"excludeResourceRules\",\n \"baseName\": \"excludeResourceRules\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"matchPolicy\",\n \"baseName\": \"matchPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespaceSelector\",\n \"baseName\": \"namespaceSelector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"objectSelector\",\n \"baseName\": \"objectSelector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceRules\",\n \"baseName\": \"resourceRules\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1MatchResources.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Describes the state of a migration at a certain point.\n*/\nexport class V1alpha1MigrationCondition {\n static getAttributeTypeMap() {\n return V1alpha1MigrationCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1MigrationCondition.discriminator = undefined;\nV1alpha1MigrationCondition.mapping = undefined;\nV1alpha1MigrationCondition.attributeTypeMap = [\n {\n \"name\": \"lastUpdateTime\",\n \"baseName\": \"lastUpdateTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1MigrationCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain.\n*/\nexport class V1alpha1MutatingAdmissionPolicy {\n static getAttributeTypeMap() {\n return V1alpha1MutatingAdmissionPolicy.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1MutatingAdmissionPolicy.discriminator = undefined;\nV1alpha1MutatingAdmissionPolicy.mapping = undefined;\nV1alpha1MutatingAdmissionPolicy.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1alpha1MutatingAdmissionPolicySpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1MutatingAdmissionPolicy.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don\\'t use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget.\n*/\nexport class V1alpha1MutatingAdmissionPolicyBinding {\n static getAttributeTypeMap() {\n return V1alpha1MutatingAdmissionPolicyBinding.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1MutatingAdmissionPolicyBinding.discriminator = undefined;\nV1alpha1MutatingAdmissionPolicyBinding.mapping = undefined;\nV1alpha1MutatingAdmissionPolicyBinding.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1alpha1MutatingAdmissionPolicyBindingSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1MutatingAdmissionPolicyBinding.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding.\n*/\nexport class V1alpha1MutatingAdmissionPolicyBindingList {\n static getAttributeTypeMap() {\n return V1alpha1MutatingAdmissionPolicyBindingList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1MutatingAdmissionPolicyBindingList.discriminator = undefined;\nV1alpha1MutatingAdmissionPolicyBindingList.mapping = undefined;\nV1alpha1MutatingAdmissionPolicyBindingList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1MutatingAdmissionPolicyBindingList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding.\n*/\nexport class V1alpha1MutatingAdmissionPolicyBindingSpec {\n static getAttributeTypeMap() {\n return V1alpha1MutatingAdmissionPolicyBindingSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1MutatingAdmissionPolicyBindingSpec.discriminator = undefined;\nV1alpha1MutatingAdmissionPolicyBindingSpec.mapping = undefined;\nV1alpha1MutatingAdmissionPolicyBindingSpec.attributeTypeMap = [\n {\n \"name\": \"matchResources\",\n \"baseName\": \"matchResources\",\n \"type\": \"V1alpha1MatchResources\",\n \"format\": \"\"\n },\n {\n \"name\": \"paramRef\",\n \"baseName\": \"paramRef\",\n \"type\": \"V1alpha1ParamRef\",\n \"format\": \"\"\n },\n {\n \"name\": \"policyName\",\n \"baseName\": \"policyName\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1MutatingAdmissionPolicyBindingSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy.\n*/\nexport class V1alpha1MutatingAdmissionPolicyList {\n static getAttributeTypeMap() {\n return V1alpha1MutatingAdmissionPolicyList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1MutatingAdmissionPolicyList.discriminator = undefined;\nV1alpha1MutatingAdmissionPolicyList.mapping = undefined;\nV1alpha1MutatingAdmissionPolicyList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1MutatingAdmissionPolicyList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy.\n*/\nexport class V1alpha1MutatingAdmissionPolicySpec {\n static getAttributeTypeMap() {\n return V1alpha1MutatingAdmissionPolicySpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1MutatingAdmissionPolicySpec.discriminator = undefined;\nV1alpha1MutatingAdmissionPolicySpec.mapping = undefined;\nV1alpha1MutatingAdmissionPolicySpec.attributeTypeMap = [\n {\n \"name\": \"failurePolicy\",\n \"baseName\": \"failurePolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"matchConditions\",\n \"baseName\": \"matchConditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"matchConstraints\",\n \"baseName\": \"matchConstraints\",\n \"type\": \"V1alpha1MatchResources\",\n \"format\": \"\"\n },\n {\n \"name\": \"mutations\",\n \"baseName\": \"mutations\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"paramKind\",\n \"baseName\": \"paramKind\",\n \"type\": \"V1alpha1ParamKind\",\n \"format\": \"\"\n },\n {\n \"name\": \"reinvocationPolicy\",\n \"baseName\": \"reinvocationPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"variables\",\n \"baseName\": \"variables\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1MutatingAdmissionPolicySpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Mutation specifies the CEL expression which is used to apply the Mutation.\n*/\nexport class V1alpha1Mutation {\n static getAttributeTypeMap() {\n return V1alpha1Mutation.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1Mutation.discriminator = undefined;\nV1alpha1Mutation.mapping = undefined;\nV1alpha1Mutation.attributeTypeMap = [\n {\n \"name\": \"applyConfiguration\",\n \"baseName\": \"applyConfiguration\",\n \"type\": \"V1alpha1ApplyConfiguration\",\n \"format\": \"\"\n },\n {\n \"name\": \"jsonPatch\",\n \"baseName\": \"jsonPatch\",\n \"type\": \"V1alpha1JSONPatch\",\n \"format\": \"\"\n },\n {\n \"name\": \"patchType\",\n \"baseName\": \"patchType\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1Mutation.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.\n*/\nexport class V1alpha1NamedRuleWithOperations {\n static getAttributeTypeMap() {\n return V1alpha1NamedRuleWithOperations.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1NamedRuleWithOperations.discriminator = undefined;\nV1alpha1NamedRuleWithOperations.mapping = undefined;\nV1alpha1NamedRuleWithOperations.attributeTypeMap = [\n {\n \"name\": \"apiGroups\",\n \"baseName\": \"apiGroups\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"apiVersions\",\n \"baseName\": \"apiVersions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"operations\",\n \"baseName\": \"operations\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceNames\",\n \"baseName\": \"resourceNames\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resources\",\n \"baseName\": \"resources\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"scope\",\n \"baseName\": \"scope\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1NamedRuleWithOperations.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ParamKind is a tuple of Group Kind and Version.\n*/\nexport class V1alpha1ParamKind {\n static getAttributeTypeMap() {\n return V1alpha1ParamKind.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1ParamKind.discriminator = undefined;\nV1alpha1ParamKind.mapping = undefined;\nV1alpha1ParamKind.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1ParamKind.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.\n*/\nexport class V1alpha1ParamRef {\n static getAttributeTypeMap() {\n return V1alpha1ParamRef.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1ParamRef.discriminator = undefined;\nV1alpha1ParamRef.mapping = undefined;\nV1alpha1ParamRef.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespace\",\n \"baseName\": \"namespace\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"parameterNotFoundAction\",\n \"baseName\": \"parameterNotFoundAction\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"selector\",\n \"baseName\": \"selector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1ParamRef.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* An API server instance reports the version it can decode and the version it encodes objects to when persisting objects in the backend.\n*/\nexport class V1alpha1ServerStorageVersion {\n static getAttributeTypeMap() {\n return V1alpha1ServerStorageVersion.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1ServerStorageVersion.discriminator = undefined;\nV1alpha1ServerStorageVersion.mapping = undefined;\nV1alpha1ServerStorageVersion.attributeTypeMap = [\n {\n \"name\": \"apiServerID\",\n \"baseName\": \"apiServerID\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"decodableVersions\",\n \"baseName\": \"decodableVersions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"encodingVersion\",\n \"baseName\": \"encodingVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"servedVersions\",\n \"baseName\": \"servedVersions\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1ServerStorageVersion.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Storage version of a specific resource.\n*/\nexport class V1alpha1StorageVersion {\n static getAttributeTypeMap() {\n return V1alpha1StorageVersion.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1StorageVersion.discriminator = undefined;\nV1alpha1StorageVersion.mapping = undefined;\nV1alpha1StorageVersion.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"any\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1alpha1StorageVersionStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1StorageVersion.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Describes the state of the storageVersion at a certain point.\n*/\nexport class V1alpha1StorageVersionCondition {\n static getAttributeTypeMap() {\n return V1alpha1StorageVersionCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1StorageVersionCondition.discriminator = undefined;\nV1alpha1StorageVersionCondition.mapping = undefined;\nV1alpha1StorageVersionCondition.attributeTypeMap = [\n {\n \"name\": \"lastTransitionTime\",\n \"baseName\": \"lastTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"observedGeneration\",\n \"baseName\": \"observedGeneration\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1StorageVersionCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* A list of StorageVersions.\n*/\nexport class V1alpha1StorageVersionList {\n static getAttributeTypeMap() {\n return V1alpha1StorageVersionList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1StorageVersionList.discriminator = undefined;\nV1alpha1StorageVersionList.mapping = undefined;\nV1alpha1StorageVersionList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1StorageVersionList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* StorageVersionMigration represents a migration of stored data to the latest storage version.\n*/\nexport class V1alpha1StorageVersionMigration {\n static getAttributeTypeMap() {\n return V1alpha1StorageVersionMigration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1StorageVersionMigration.discriminator = undefined;\nV1alpha1StorageVersionMigration.mapping = undefined;\nV1alpha1StorageVersionMigration.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1alpha1StorageVersionMigrationSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1alpha1StorageVersionMigrationStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1StorageVersionMigration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* StorageVersionMigrationList is a collection of storage version migrations.\n*/\nexport class V1alpha1StorageVersionMigrationList {\n static getAttributeTypeMap() {\n return V1alpha1StorageVersionMigrationList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1StorageVersionMigrationList.discriminator = undefined;\nV1alpha1StorageVersionMigrationList.mapping = undefined;\nV1alpha1StorageVersionMigrationList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1StorageVersionMigrationList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Spec of the storage version migration.\n*/\nexport class V1alpha1StorageVersionMigrationSpec {\n static getAttributeTypeMap() {\n return V1alpha1StorageVersionMigrationSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1StorageVersionMigrationSpec.discriminator = undefined;\nV1alpha1StorageVersionMigrationSpec.mapping = undefined;\nV1alpha1StorageVersionMigrationSpec.attributeTypeMap = [\n {\n \"name\": \"continueToken\",\n \"baseName\": \"continueToken\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resource\",\n \"baseName\": \"resource\",\n \"type\": \"V1alpha1GroupVersionResource\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1StorageVersionMigrationSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Status of the storage version migration.\n*/\nexport class V1alpha1StorageVersionMigrationStatus {\n static getAttributeTypeMap() {\n return V1alpha1StorageVersionMigrationStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1StorageVersionMigrationStatus.discriminator = undefined;\nV1alpha1StorageVersionMigrationStatus.mapping = undefined;\nV1alpha1StorageVersionMigrationStatus.attributeTypeMap = [\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceVersion\",\n \"baseName\": \"resourceVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1StorageVersionMigrationStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* API server instances report the versions they can decode and the version they encode objects to when persisting objects in the backend.\n*/\nexport class V1alpha1StorageVersionStatus {\n static getAttributeTypeMap() {\n return V1alpha1StorageVersionStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1StorageVersionStatus.discriminator = undefined;\nV1alpha1StorageVersionStatus.mapping = undefined;\nV1alpha1StorageVersionStatus.attributeTypeMap = [\n {\n \"name\": \"commonEncodingVersion\",\n \"baseName\": \"commonEncodingVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"storageVersions\",\n \"baseName\": \"storageVersions\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1StorageVersionStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Variable is the definition of a variable that is used for composition.\n*/\nexport class V1alpha1Variable {\n static getAttributeTypeMap() {\n return V1alpha1Variable.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1Variable.discriminator = undefined;\nV1alpha1Variable.mapping = undefined;\nV1alpha1Variable.attributeTypeMap = [\n {\n \"name\": \"expression\",\n \"baseName\": \"expression\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1Variable.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* VolumeAttributesClass represents a specification of mutable volume attributes defined by the CSI driver. The class can be specified during dynamic provisioning of PersistentVolumeClaims, and changed in the PersistentVolumeClaim spec after provisioning.\n*/\nexport class V1alpha1VolumeAttributesClass {\n static getAttributeTypeMap() {\n return V1alpha1VolumeAttributesClass.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1VolumeAttributesClass.discriminator = undefined;\nV1alpha1VolumeAttributesClass.mapping = undefined;\nV1alpha1VolumeAttributesClass.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"driverName\",\n \"baseName\": \"driverName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"parameters\",\n \"baseName\": \"parameters\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1VolumeAttributesClass.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* VolumeAttributesClassList is a collection of VolumeAttributesClass objects.\n*/\nexport class V1alpha1VolumeAttributesClassList {\n static getAttributeTypeMap() {\n return V1alpha1VolumeAttributesClassList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha1VolumeAttributesClassList.discriminator = undefined;\nV1alpha1VolumeAttributesClassList.mapping = undefined;\nV1alpha1VolumeAttributesClassList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha1VolumeAttributesClassList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates.\n*/\nexport class V1alpha2LeaseCandidate {\n static getAttributeTypeMap() {\n return V1alpha2LeaseCandidate.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha2LeaseCandidate.discriminator = undefined;\nV1alpha2LeaseCandidate.mapping = undefined;\nV1alpha2LeaseCandidate.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1alpha2LeaseCandidateSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha2LeaseCandidate.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LeaseCandidateList is a list of Lease objects.\n*/\nexport class V1alpha2LeaseCandidateList {\n static getAttributeTypeMap() {\n return V1alpha2LeaseCandidateList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha2LeaseCandidateList.discriminator = undefined;\nV1alpha2LeaseCandidateList.mapping = undefined;\nV1alpha2LeaseCandidateList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha2LeaseCandidateList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LeaseCandidateSpec is a specification of a Lease.\n*/\nexport class V1alpha2LeaseCandidateSpec {\n static getAttributeTypeMap() {\n return V1alpha2LeaseCandidateSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha2LeaseCandidateSpec.discriminator = undefined;\nV1alpha2LeaseCandidateSpec.mapping = undefined;\nV1alpha2LeaseCandidateSpec.attributeTypeMap = [\n {\n \"name\": \"binaryVersion\",\n \"baseName\": \"binaryVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"emulationVersion\",\n \"baseName\": \"emulationVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"leaseName\",\n \"baseName\": \"leaseName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"pingTime\",\n \"baseName\": \"pingTime\",\n \"type\": \"V1MicroTime\",\n \"format\": \"date-time-micro\"\n },\n {\n \"name\": \"renewTime\",\n \"baseName\": \"renewTime\",\n \"type\": \"V1MicroTime\",\n \"format\": \"date-time-micro\"\n },\n {\n \"name\": \"strategy\",\n \"baseName\": \"strategy\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha2LeaseCandidateSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.\n*/\nexport class V1alpha3AllocatedDeviceStatus {\n static getAttributeTypeMap() {\n return V1alpha3AllocatedDeviceStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3AllocatedDeviceStatus.discriminator = undefined;\nV1alpha3AllocatedDeviceStatus.mapping = undefined;\nV1alpha3AllocatedDeviceStatus.attributeTypeMap = [\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"data\",\n \"baseName\": \"data\",\n \"type\": \"any\",\n \"format\": \"\"\n },\n {\n \"name\": \"device\",\n \"baseName\": \"device\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"driver\",\n \"baseName\": \"driver\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"networkData\",\n \"baseName\": \"networkData\",\n \"type\": \"V1alpha3NetworkDeviceData\",\n \"format\": \"\"\n },\n {\n \"name\": \"pool\",\n \"baseName\": \"pool\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3AllocatedDeviceStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* AllocationResult contains attributes of an allocated resource.\n*/\nexport class V1alpha3AllocationResult {\n static getAttributeTypeMap() {\n return V1alpha3AllocationResult.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3AllocationResult.discriminator = undefined;\nV1alpha3AllocationResult.mapping = undefined;\nV1alpha3AllocationResult.attributeTypeMap = [\n {\n \"name\": \"devices\",\n \"baseName\": \"devices\",\n \"type\": \"V1alpha3DeviceAllocationResult\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeSelector\",\n \"baseName\": \"nodeSelector\",\n \"type\": \"V1NodeSelector\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3AllocationResult.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* BasicDevice defines one device instance.\n*/\nexport class V1alpha3BasicDevice {\n static getAttributeTypeMap() {\n return V1alpha3BasicDevice.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3BasicDevice.discriminator = undefined;\nV1alpha3BasicDevice.mapping = undefined;\nV1alpha3BasicDevice.attributeTypeMap = [\n {\n \"name\": \"allNodes\",\n \"baseName\": \"allNodes\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"attributes\",\n \"baseName\": \"attributes\",\n \"type\": \"{ [key: string]: V1alpha3DeviceAttribute; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"capacity\",\n \"baseName\": \"capacity\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"consumesCounters\",\n \"baseName\": \"consumesCounters\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeName\",\n \"baseName\": \"nodeName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeSelector\",\n \"baseName\": \"nodeSelector\",\n \"type\": \"V1NodeSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"taints\",\n \"baseName\": \"taints\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3BasicDevice.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CELDeviceSelector contains a CEL expression for selecting a device.\n*/\nexport class V1alpha3CELDeviceSelector {\n static getAttributeTypeMap() {\n return V1alpha3CELDeviceSelector.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3CELDeviceSelector.discriminator = undefined;\nV1alpha3CELDeviceSelector.mapping = undefined;\nV1alpha3CELDeviceSelector.attributeTypeMap = [\n {\n \"name\": \"expression\",\n \"baseName\": \"expression\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3CELDeviceSelector.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Counter describes a quantity associated with a device.\n*/\nexport class V1alpha3Counter {\n static getAttributeTypeMap() {\n return V1alpha3Counter.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3Counter.discriminator = undefined;\nV1alpha3Counter.mapping = undefined;\nV1alpha3Counter.attributeTypeMap = [\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3Counter.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CounterSet defines a named set of counters that are available to be used by devices defined in the ResourceSlice. The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices.\n*/\nexport class V1alpha3CounterSet {\n static getAttributeTypeMap() {\n return V1alpha3CounterSet.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3CounterSet.discriminator = undefined;\nV1alpha3CounterSet.mapping = undefined;\nV1alpha3CounterSet.attributeTypeMap = [\n {\n \"name\": \"counters\",\n \"baseName\": \"counters\",\n \"type\": \"{ [key: string]: V1alpha3Counter; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3CounterSet.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.\n*/\nexport class V1alpha3Device {\n static getAttributeTypeMap() {\n return V1alpha3Device.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3Device.discriminator = undefined;\nV1alpha3Device.mapping = undefined;\nV1alpha3Device.attributeTypeMap = [\n {\n \"name\": \"basic\",\n \"baseName\": \"basic\",\n \"type\": \"V1alpha3BasicDevice\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3Device.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceAllocationConfiguration gets embedded in an AllocationResult.\n*/\nexport class V1alpha3DeviceAllocationConfiguration {\n static getAttributeTypeMap() {\n return V1alpha3DeviceAllocationConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceAllocationConfiguration.discriminator = undefined;\nV1alpha3DeviceAllocationConfiguration.mapping = undefined;\nV1alpha3DeviceAllocationConfiguration.attributeTypeMap = [\n {\n \"name\": \"opaque\",\n \"baseName\": \"opaque\",\n \"type\": \"V1alpha3OpaqueDeviceConfiguration\",\n \"format\": \"\"\n },\n {\n \"name\": \"requests\",\n \"baseName\": \"requests\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"source\",\n \"baseName\": \"source\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceAllocationConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceAllocationResult is the result of allocating devices.\n*/\nexport class V1alpha3DeviceAllocationResult {\n static getAttributeTypeMap() {\n return V1alpha3DeviceAllocationResult.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceAllocationResult.discriminator = undefined;\nV1alpha3DeviceAllocationResult.mapping = undefined;\nV1alpha3DeviceAllocationResult.attributeTypeMap = [\n {\n \"name\": \"config\",\n \"baseName\": \"config\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"results\",\n \"baseName\": \"results\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceAllocationResult.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceAttribute must have exactly one field set.\n*/\nexport class V1alpha3DeviceAttribute {\n static getAttributeTypeMap() {\n return V1alpha3DeviceAttribute.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceAttribute.discriminator = undefined;\nV1alpha3DeviceAttribute.mapping = undefined;\nV1alpha3DeviceAttribute.attributeTypeMap = [\n {\n \"name\": \"bool\",\n \"baseName\": \"bool\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"_int\",\n \"baseName\": \"int\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"string\",\n \"baseName\": \"string\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"version\",\n \"baseName\": \"version\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceAttribute.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceClaim defines how to request devices with a ResourceClaim.\n*/\nexport class V1alpha3DeviceClaim {\n static getAttributeTypeMap() {\n return V1alpha3DeviceClaim.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceClaim.discriminator = undefined;\nV1alpha3DeviceClaim.mapping = undefined;\nV1alpha3DeviceClaim.attributeTypeMap = [\n {\n \"name\": \"config\",\n \"baseName\": \"config\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"constraints\",\n \"baseName\": \"constraints\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"requests\",\n \"baseName\": \"requests\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceClaim.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.\n*/\nexport class V1alpha3DeviceClaimConfiguration {\n static getAttributeTypeMap() {\n return V1alpha3DeviceClaimConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceClaimConfiguration.discriminator = undefined;\nV1alpha3DeviceClaimConfiguration.mapping = undefined;\nV1alpha3DeviceClaimConfiguration.attributeTypeMap = [\n {\n \"name\": \"opaque\",\n \"baseName\": \"opaque\",\n \"type\": \"V1alpha3OpaqueDeviceConfiguration\",\n \"format\": \"\"\n },\n {\n \"name\": \"requests\",\n \"baseName\": \"requests\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceClaimConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped. This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\n*/\nexport class V1alpha3DeviceClass {\n static getAttributeTypeMap() {\n return V1alpha3DeviceClass.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceClass.discriminator = undefined;\nV1alpha3DeviceClass.mapping = undefined;\nV1alpha3DeviceClass.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1alpha3DeviceClassSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceClass.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceClassConfiguration is used in DeviceClass.\n*/\nexport class V1alpha3DeviceClassConfiguration {\n static getAttributeTypeMap() {\n return V1alpha3DeviceClassConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceClassConfiguration.discriminator = undefined;\nV1alpha3DeviceClassConfiguration.mapping = undefined;\nV1alpha3DeviceClassConfiguration.attributeTypeMap = [\n {\n \"name\": \"opaque\",\n \"baseName\": \"opaque\",\n \"type\": \"V1alpha3OpaqueDeviceConfiguration\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceClassConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceClassList is a collection of classes.\n*/\nexport class V1alpha3DeviceClassList {\n static getAttributeTypeMap() {\n return V1alpha3DeviceClassList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceClassList.discriminator = undefined;\nV1alpha3DeviceClassList.mapping = undefined;\nV1alpha3DeviceClassList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceClassList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.\n*/\nexport class V1alpha3DeviceClassSpec {\n static getAttributeTypeMap() {\n return V1alpha3DeviceClassSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceClassSpec.discriminator = undefined;\nV1alpha3DeviceClassSpec.mapping = undefined;\nV1alpha3DeviceClassSpec.attributeTypeMap = [\n {\n \"name\": \"config\",\n \"baseName\": \"config\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"selectors\",\n \"baseName\": \"selectors\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceClassSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceConstraint must have exactly one field set besides Requests.\n*/\nexport class V1alpha3DeviceConstraint {\n static getAttributeTypeMap() {\n return V1alpha3DeviceConstraint.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceConstraint.discriminator = undefined;\nV1alpha3DeviceConstraint.mapping = undefined;\nV1alpha3DeviceConstraint.attributeTypeMap = [\n {\n \"name\": \"matchAttribute\",\n \"baseName\": \"matchAttribute\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"requests\",\n \"baseName\": \"requests\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceConstraint.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet.\n*/\nexport class V1alpha3DeviceCounterConsumption {\n static getAttributeTypeMap() {\n return V1alpha3DeviceCounterConsumption.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceCounterConsumption.discriminator = undefined;\nV1alpha3DeviceCounterConsumption.mapping = undefined;\nV1alpha3DeviceCounterConsumption.attributeTypeMap = [\n {\n \"name\": \"counterSet\",\n \"baseName\": \"counterSet\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"counters\",\n \"baseName\": \"counters\",\n \"type\": \"{ [key: string]: V1alpha3Counter; }\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceCounterConsumption.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.\n*/\nexport class V1alpha3DeviceRequest {\n static getAttributeTypeMap() {\n return V1alpha3DeviceRequest.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceRequest.discriminator = undefined;\nV1alpha3DeviceRequest.mapping = undefined;\nV1alpha3DeviceRequest.attributeTypeMap = [\n {\n \"name\": \"adminAccess\",\n \"baseName\": \"adminAccess\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"allocationMode\",\n \"baseName\": \"allocationMode\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"count\",\n \"baseName\": \"count\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"deviceClassName\",\n \"baseName\": \"deviceClassName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"firstAvailable\",\n \"baseName\": \"firstAvailable\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"selectors\",\n \"baseName\": \"selectors\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"tolerations\",\n \"baseName\": \"tolerations\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceRequest.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceRequestAllocationResult contains the allocation result for one request.\n*/\nexport class V1alpha3DeviceRequestAllocationResult {\n static getAttributeTypeMap() {\n return V1alpha3DeviceRequestAllocationResult.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceRequestAllocationResult.discriminator = undefined;\nV1alpha3DeviceRequestAllocationResult.mapping = undefined;\nV1alpha3DeviceRequestAllocationResult.attributeTypeMap = [\n {\n \"name\": \"adminAccess\",\n \"baseName\": \"adminAccess\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"device\",\n \"baseName\": \"device\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"driver\",\n \"baseName\": \"driver\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"pool\",\n \"baseName\": \"pool\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"request\",\n \"baseName\": \"request\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"tolerations\",\n \"baseName\": \"tolerations\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceRequestAllocationResult.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceSelector must have exactly one field set.\n*/\nexport class V1alpha3DeviceSelector {\n static getAttributeTypeMap() {\n return V1alpha3DeviceSelector.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceSelector.discriminator = undefined;\nV1alpha3DeviceSelector.mapping = undefined;\nV1alpha3DeviceSelector.attributeTypeMap = [\n {\n \"name\": \"cel\",\n \"baseName\": \"cel\",\n \"type\": \"V1alpha3CELDeviceSelector\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceSelector.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices. DeviceSubRequest is similar to Request, but doesn\\'t expose the AdminAccess or FirstAvailable fields, as those can only be set on the top-level request. AdminAccess is not supported for requests with a prioritized list, and recursive FirstAvailable fields are not supported.\n*/\nexport class V1alpha3DeviceSubRequest {\n static getAttributeTypeMap() {\n return V1alpha3DeviceSubRequest.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceSubRequest.discriminator = undefined;\nV1alpha3DeviceSubRequest.mapping = undefined;\nV1alpha3DeviceSubRequest.attributeTypeMap = [\n {\n \"name\": \"allocationMode\",\n \"baseName\": \"allocationMode\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"count\",\n \"baseName\": \"count\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"deviceClassName\",\n \"baseName\": \"deviceClassName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"selectors\",\n \"baseName\": \"selectors\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"tolerations\",\n \"baseName\": \"tolerations\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceSubRequest.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* The device this taint is attached to has the \\\"effect\\\" on any claim which does not tolerate the taint and, through the claim, to pods using the claim.\n*/\nexport class V1alpha3DeviceTaint {\n static getAttributeTypeMap() {\n return V1alpha3DeviceTaint.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceTaint.discriminator = undefined;\nV1alpha3DeviceTaint.mapping = undefined;\nV1alpha3DeviceTaint.attributeTypeMap = [\n {\n \"name\": \"effect\",\n \"baseName\": \"effect\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"key\",\n \"baseName\": \"key\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"timeAdded\",\n \"baseName\": \"timeAdded\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceTaint.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceTaintRule adds one taint to all devices which match the selector. This has the same effect as if the taint was specified directly in the ResourceSlice by the DRA driver.\n*/\nexport class V1alpha3DeviceTaintRule {\n static getAttributeTypeMap() {\n return V1alpha3DeviceTaintRule.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceTaintRule.discriminator = undefined;\nV1alpha3DeviceTaintRule.mapping = undefined;\nV1alpha3DeviceTaintRule.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1alpha3DeviceTaintRuleSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceTaintRule.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceTaintRuleList is a collection of DeviceTaintRules.\n*/\nexport class V1alpha3DeviceTaintRuleList {\n static getAttributeTypeMap() {\n return V1alpha3DeviceTaintRuleList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceTaintRuleList.discriminator = undefined;\nV1alpha3DeviceTaintRuleList.mapping = undefined;\nV1alpha3DeviceTaintRuleList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceTaintRuleList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceTaintRuleSpec specifies the selector and one taint.\n*/\nexport class V1alpha3DeviceTaintRuleSpec {\n static getAttributeTypeMap() {\n return V1alpha3DeviceTaintRuleSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceTaintRuleSpec.discriminator = undefined;\nV1alpha3DeviceTaintRuleSpec.mapping = undefined;\nV1alpha3DeviceTaintRuleSpec.attributeTypeMap = [\n {\n \"name\": \"deviceSelector\",\n \"baseName\": \"deviceSelector\",\n \"type\": \"V1alpha3DeviceTaintSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"taint\",\n \"baseName\": \"taint\",\n \"type\": \"V1alpha3DeviceTaint\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceTaintRuleSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceTaintSelector defines which device(s) a DeviceTaintRule applies to. The empty selector matches all devices. Without a selector, no devices are matched.\n*/\nexport class V1alpha3DeviceTaintSelector {\n static getAttributeTypeMap() {\n return V1alpha3DeviceTaintSelector.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceTaintSelector.discriminator = undefined;\nV1alpha3DeviceTaintSelector.mapping = undefined;\nV1alpha3DeviceTaintSelector.attributeTypeMap = [\n {\n \"name\": \"device\",\n \"baseName\": \"device\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"deviceClassName\",\n \"baseName\": \"deviceClassName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"driver\",\n \"baseName\": \"driver\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"pool\",\n \"baseName\": \"pool\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"selectors\",\n \"baseName\": \"selectors\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceTaintSelector.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple using the matching operator .\n*/\nexport class V1alpha3DeviceToleration {\n static getAttributeTypeMap() {\n return V1alpha3DeviceToleration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3DeviceToleration.discriminator = undefined;\nV1alpha3DeviceToleration.mapping = undefined;\nV1alpha3DeviceToleration.attributeTypeMap = [\n {\n \"name\": \"effect\",\n \"baseName\": \"effect\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"key\",\n \"baseName\": \"key\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"operator\",\n \"baseName\": \"operator\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"tolerationSeconds\",\n \"baseName\": \"tolerationSeconds\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3DeviceToleration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NetworkDeviceData provides network-related details for the allocated device. This information may be filled by drivers or other components to configure or identify the device within a network context.\n*/\nexport class V1alpha3NetworkDeviceData {\n static getAttributeTypeMap() {\n return V1alpha3NetworkDeviceData.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3NetworkDeviceData.discriminator = undefined;\nV1alpha3NetworkDeviceData.mapping = undefined;\nV1alpha3NetworkDeviceData.attributeTypeMap = [\n {\n \"name\": \"hardwareAddress\",\n \"baseName\": \"hardwareAddress\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"interfaceName\",\n \"baseName\": \"interfaceName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"ips\",\n \"baseName\": \"ips\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3NetworkDeviceData.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.\n*/\nexport class V1alpha3OpaqueDeviceConfiguration {\n static getAttributeTypeMap() {\n return V1alpha3OpaqueDeviceConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3OpaqueDeviceConfiguration.discriminator = undefined;\nV1alpha3OpaqueDeviceConfiguration.mapping = undefined;\nV1alpha3OpaqueDeviceConfiguration.attributeTypeMap = [\n {\n \"name\": \"driver\",\n \"baseName\": \"driver\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"parameters\",\n \"baseName\": \"parameters\",\n \"type\": \"any\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3OpaqueDeviceConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\n*/\nexport class V1alpha3ResourceClaim {\n static getAttributeTypeMap() {\n return V1alpha3ResourceClaim.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3ResourceClaim.discriminator = undefined;\nV1alpha3ResourceClaim.mapping = undefined;\nV1alpha3ResourceClaim.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1alpha3ResourceClaimSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1alpha3ResourceClaimStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3ResourceClaim.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimConsumerReference contains enough information to let you locate the consumer of a ResourceClaim. The user must be a resource in the same namespace as the ResourceClaim.\n*/\nexport class V1alpha3ResourceClaimConsumerReference {\n static getAttributeTypeMap() {\n return V1alpha3ResourceClaimConsumerReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3ResourceClaimConsumerReference.discriminator = undefined;\nV1alpha3ResourceClaimConsumerReference.mapping = undefined;\nV1alpha3ResourceClaimConsumerReference.attributeTypeMap = [\n {\n \"name\": \"apiGroup\",\n \"baseName\": \"apiGroup\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resource\",\n \"baseName\": \"resource\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"uid\",\n \"baseName\": \"uid\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3ResourceClaimConsumerReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimList is a collection of claims.\n*/\nexport class V1alpha3ResourceClaimList {\n static getAttributeTypeMap() {\n return V1alpha3ResourceClaimList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3ResourceClaimList.discriminator = undefined;\nV1alpha3ResourceClaimList.mapping = undefined;\nV1alpha3ResourceClaimList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3ResourceClaimList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.\n*/\nexport class V1alpha3ResourceClaimSpec {\n static getAttributeTypeMap() {\n return V1alpha3ResourceClaimSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3ResourceClaimSpec.discriminator = undefined;\nV1alpha3ResourceClaimSpec.mapping = undefined;\nV1alpha3ResourceClaimSpec.attributeTypeMap = [\n {\n \"name\": \"devices\",\n \"baseName\": \"devices\",\n \"type\": \"V1alpha3DeviceClaim\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3ResourceClaimSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.\n*/\nexport class V1alpha3ResourceClaimStatus {\n static getAttributeTypeMap() {\n return V1alpha3ResourceClaimStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3ResourceClaimStatus.discriminator = undefined;\nV1alpha3ResourceClaimStatus.mapping = undefined;\nV1alpha3ResourceClaimStatus.attributeTypeMap = [\n {\n \"name\": \"allocation\",\n \"baseName\": \"allocation\",\n \"type\": \"V1alpha3AllocationResult\",\n \"format\": \"\"\n },\n {\n \"name\": \"devices\",\n \"baseName\": \"devices\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"reservedFor\",\n \"baseName\": \"reservedFor\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3ResourceClaimStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimTemplate is used to produce ResourceClaim objects. This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\n*/\nexport class V1alpha3ResourceClaimTemplate {\n static getAttributeTypeMap() {\n return V1alpha3ResourceClaimTemplate.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3ResourceClaimTemplate.discriminator = undefined;\nV1alpha3ResourceClaimTemplate.mapping = undefined;\nV1alpha3ResourceClaimTemplate.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1alpha3ResourceClaimTemplateSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3ResourceClaimTemplate.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimTemplateList is a collection of claim templates.\n*/\nexport class V1alpha3ResourceClaimTemplateList {\n static getAttributeTypeMap() {\n return V1alpha3ResourceClaimTemplateList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3ResourceClaimTemplateList.discriminator = undefined;\nV1alpha3ResourceClaimTemplateList.mapping = undefined;\nV1alpha3ResourceClaimTemplateList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3ResourceClaimTemplateList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.\n*/\nexport class V1alpha3ResourceClaimTemplateSpec {\n static getAttributeTypeMap() {\n return V1alpha3ResourceClaimTemplateSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3ResourceClaimTemplateSpec.discriminator = undefined;\nV1alpha3ResourceClaimTemplateSpec.mapping = undefined;\nV1alpha3ResourceClaimTemplateSpec.attributeTypeMap = [\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1alpha3ResourceClaimSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3ResourceClaimTemplateSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourcePool describes the pool that ResourceSlices belong to.\n*/\nexport class V1alpha3ResourcePool {\n static getAttributeTypeMap() {\n return V1alpha3ResourcePool.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3ResourcePool.discriminator = undefined;\nV1alpha3ResourcePool.mapping = undefined;\nV1alpha3ResourcePool.attributeTypeMap = [\n {\n \"name\": \"generation\",\n \"baseName\": \"generation\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceSliceCount\",\n \"baseName\": \"resourceSliceCount\",\n \"type\": \"number\",\n \"format\": \"int64\"\n }\n];\n//# sourceMappingURL=V1alpha3ResourcePool.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceSlice represents one or more resources in a pool of similar resources, managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many ResourceSlices comprise a pool is determined by the driver. At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\n*/\nexport class V1alpha3ResourceSlice {\n static getAttributeTypeMap() {\n return V1alpha3ResourceSlice.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3ResourceSlice.discriminator = undefined;\nV1alpha3ResourceSlice.mapping = undefined;\nV1alpha3ResourceSlice.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1alpha3ResourceSliceSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3ResourceSlice.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceSliceList is a collection of ResourceSlices.\n*/\nexport class V1alpha3ResourceSliceList {\n static getAttributeTypeMap() {\n return V1alpha3ResourceSliceList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3ResourceSliceList.discriminator = undefined;\nV1alpha3ResourceSliceList.mapping = undefined;\nV1alpha3ResourceSliceList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3ResourceSliceList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceSliceSpec contains the information published by the driver in one ResourceSlice.\n*/\nexport class V1alpha3ResourceSliceSpec {\n static getAttributeTypeMap() {\n return V1alpha3ResourceSliceSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1alpha3ResourceSliceSpec.discriminator = undefined;\nV1alpha3ResourceSliceSpec.mapping = undefined;\nV1alpha3ResourceSliceSpec.attributeTypeMap = [\n {\n \"name\": \"allNodes\",\n \"baseName\": \"allNodes\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"devices\",\n \"baseName\": \"devices\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"driver\",\n \"baseName\": \"driver\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeName\",\n \"baseName\": \"nodeName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeSelector\",\n \"baseName\": \"nodeSelector\",\n \"type\": \"V1NodeSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"perDeviceNodeSelection\",\n \"baseName\": \"perDeviceNodeSelection\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"pool\",\n \"baseName\": \"pool\",\n \"type\": \"V1alpha3ResourcePool\",\n \"format\": \"\"\n },\n {\n \"name\": \"sharedCounters\",\n \"baseName\": \"sharedCounters\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1alpha3ResourceSliceSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.\n*/\nexport class V1beta1AllocatedDeviceStatus {\n static getAttributeTypeMap() {\n return V1beta1AllocatedDeviceStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1AllocatedDeviceStatus.discriminator = undefined;\nV1beta1AllocatedDeviceStatus.mapping = undefined;\nV1beta1AllocatedDeviceStatus.attributeTypeMap = [\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"data\",\n \"baseName\": \"data\",\n \"type\": \"any\",\n \"format\": \"\"\n },\n {\n \"name\": \"device\",\n \"baseName\": \"device\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"driver\",\n \"baseName\": \"driver\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"networkData\",\n \"baseName\": \"networkData\",\n \"type\": \"V1beta1NetworkDeviceData\",\n \"format\": \"\"\n },\n {\n \"name\": \"pool\",\n \"baseName\": \"pool\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1AllocatedDeviceStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* AllocationResult contains attributes of an allocated resource.\n*/\nexport class V1beta1AllocationResult {\n static getAttributeTypeMap() {\n return V1beta1AllocationResult.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1AllocationResult.discriminator = undefined;\nV1beta1AllocationResult.mapping = undefined;\nV1beta1AllocationResult.attributeTypeMap = [\n {\n \"name\": \"devices\",\n \"baseName\": \"devices\",\n \"type\": \"V1beta1DeviceAllocationResult\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeSelector\",\n \"baseName\": \"nodeSelector\",\n \"type\": \"V1NodeSelector\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1AllocationResult.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* AuditAnnotation describes how to produce an audit annotation for an API request.\n*/\nexport class V1beta1AuditAnnotation {\n static getAttributeTypeMap() {\n return V1beta1AuditAnnotation.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1AuditAnnotation.discriminator = undefined;\nV1beta1AuditAnnotation.mapping = undefined;\nV1beta1AuditAnnotation.attributeTypeMap = [\n {\n \"name\": \"key\",\n \"baseName\": \"key\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"valueExpression\",\n \"baseName\": \"valueExpression\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1AuditAnnotation.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* BasicDevice defines one device instance.\n*/\nexport class V1beta1BasicDevice {\n static getAttributeTypeMap() {\n return V1beta1BasicDevice.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1BasicDevice.discriminator = undefined;\nV1beta1BasicDevice.mapping = undefined;\nV1beta1BasicDevice.attributeTypeMap = [\n {\n \"name\": \"allNodes\",\n \"baseName\": \"allNodes\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"attributes\",\n \"baseName\": \"attributes\",\n \"type\": \"{ [key: string]: V1beta1DeviceAttribute; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"capacity\",\n \"baseName\": \"capacity\",\n \"type\": \"{ [key: string]: V1beta1DeviceCapacity; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"consumesCounters\",\n \"baseName\": \"consumesCounters\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeName\",\n \"baseName\": \"nodeName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeSelector\",\n \"baseName\": \"nodeSelector\",\n \"type\": \"V1NodeSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"taints\",\n \"baseName\": \"taints\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1BasicDevice.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CELDeviceSelector contains a CEL expression for selecting a device.\n*/\nexport class V1beta1CELDeviceSelector {\n static getAttributeTypeMap() {\n return V1beta1CELDeviceSelector.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1CELDeviceSelector.discriminator = undefined;\nV1beta1CELDeviceSelector.mapping = undefined;\nV1beta1CELDeviceSelector.attributeTypeMap = [\n {\n \"name\": \"expression\",\n \"baseName\": \"expression\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1CELDeviceSelector.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ClusterTrustBundle is a cluster-scoped container for X.509 trust anchors (root certificates). ClusterTrustBundle objects are considered to be readable by any authenticated user in the cluster, because they can be mounted by pods using the `clusterTrustBundle` projection. All service accounts have read access to ClusterTrustBundles by default. Users who only have namespace-level access to a cluster can read ClusterTrustBundles by impersonating a serviceaccount that they have access to. It can be optionally associated with a particular assigner, in which case it contains one valid set of trust anchors for that signer. Signers may have multiple associated ClusterTrustBundles; each is an independent set of trust anchors for that signer. Admission control is used to enforce that only users with permissions on the signer can create or modify the corresponding bundle.\n*/\nexport class V1beta1ClusterTrustBundle {\n static getAttributeTypeMap() {\n return V1beta1ClusterTrustBundle.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ClusterTrustBundle.discriminator = undefined;\nV1beta1ClusterTrustBundle.mapping = undefined;\nV1beta1ClusterTrustBundle.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1beta1ClusterTrustBundleSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ClusterTrustBundle.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ClusterTrustBundleList is a collection of ClusterTrustBundle objects\n*/\nexport class V1beta1ClusterTrustBundleList {\n static getAttributeTypeMap() {\n return V1beta1ClusterTrustBundleList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ClusterTrustBundleList.discriminator = undefined;\nV1beta1ClusterTrustBundleList.mapping = undefined;\nV1beta1ClusterTrustBundleList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ClusterTrustBundleList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ClusterTrustBundleSpec contains the signer and trust anchors.\n*/\nexport class V1beta1ClusterTrustBundleSpec {\n static getAttributeTypeMap() {\n return V1beta1ClusterTrustBundleSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ClusterTrustBundleSpec.discriminator = undefined;\nV1beta1ClusterTrustBundleSpec.mapping = undefined;\nV1beta1ClusterTrustBundleSpec.attributeTypeMap = [\n {\n \"name\": \"signerName\",\n \"baseName\": \"signerName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"trustBundle\",\n \"baseName\": \"trustBundle\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ClusterTrustBundleSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Counter describes a quantity associated with a device.\n*/\nexport class V1beta1Counter {\n static getAttributeTypeMap() {\n return V1beta1Counter.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1Counter.discriminator = undefined;\nV1beta1Counter.mapping = undefined;\nV1beta1Counter.attributeTypeMap = [\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1Counter.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CounterSet defines a named set of counters that are available to be used by devices defined in the ResourceSlice. The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices.\n*/\nexport class V1beta1CounterSet {\n static getAttributeTypeMap() {\n return V1beta1CounterSet.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1CounterSet.discriminator = undefined;\nV1beta1CounterSet.mapping = undefined;\nV1beta1CounterSet.attributeTypeMap = [\n {\n \"name\": \"counters\",\n \"baseName\": \"counters\",\n \"type\": \"{ [key: string]: V1beta1Counter; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1CounterSet.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.\n*/\nexport class V1beta1Device {\n static getAttributeTypeMap() {\n return V1beta1Device.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1Device.discriminator = undefined;\nV1beta1Device.mapping = undefined;\nV1beta1Device.attributeTypeMap = [\n {\n \"name\": \"basic\",\n \"baseName\": \"basic\",\n \"type\": \"V1beta1BasicDevice\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1Device.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceAllocationConfiguration gets embedded in an AllocationResult.\n*/\nexport class V1beta1DeviceAllocationConfiguration {\n static getAttributeTypeMap() {\n return V1beta1DeviceAllocationConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1DeviceAllocationConfiguration.discriminator = undefined;\nV1beta1DeviceAllocationConfiguration.mapping = undefined;\nV1beta1DeviceAllocationConfiguration.attributeTypeMap = [\n {\n \"name\": \"opaque\",\n \"baseName\": \"opaque\",\n \"type\": \"V1beta1OpaqueDeviceConfiguration\",\n \"format\": \"\"\n },\n {\n \"name\": \"requests\",\n \"baseName\": \"requests\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"source\",\n \"baseName\": \"source\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1DeviceAllocationConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceAllocationResult is the result of allocating devices.\n*/\nexport class V1beta1DeviceAllocationResult {\n static getAttributeTypeMap() {\n return V1beta1DeviceAllocationResult.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1DeviceAllocationResult.discriminator = undefined;\nV1beta1DeviceAllocationResult.mapping = undefined;\nV1beta1DeviceAllocationResult.attributeTypeMap = [\n {\n \"name\": \"config\",\n \"baseName\": \"config\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"results\",\n \"baseName\": \"results\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1DeviceAllocationResult.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceAttribute must have exactly one field set.\n*/\nexport class V1beta1DeviceAttribute {\n static getAttributeTypeMap() {\n return V1beta1DeviceAttribute.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1DeviceAttribute.discriminator = undefined;\nV1beta1DeviceAttribute.mapping = undefined;\nV1beta1DeviceAttribute.attributeTypeMap = [\n {\n \"name\": \"bool\",\n \"baseName\": \"bool\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"_int\",\n \"baseName\": \"int\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"string\",\n \"baseName\": \"string\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"version\",\n \"baseName\": \"version\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1DeviceAttribute.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceCapacity describes a quantity associated with a device.\n*/\nexport class V1beta1DeviceCapacity {\n static getAttributeTypeMap() {\n return V1beta1DeviceCapacity.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1DeviceCapacity.discriminator = undefined;\nV1beta1DeviceCapacity.mapping = undefined;\nV1beta1DeviceCapacity.attributeTypeMap = [\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1DeviceCapacity.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceClaim defines how to request devices with a ResourceClaim.\n*/\nexport class V1beta1DeviceClaim {\n static getAttributeTypeMap() {\n return V1beta1DeviceClaim.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1DeviceClaim.discriminator = undefined;\nV1beta1DeviceClaim.mapping = undefined;\nV1beta1DeviceClaim.attributeTypeMap = [\n {\n \"name\": \"config\",\n \"baseName\": \"config\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"constraints\",\n \"baseName\": \"constraints\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"requests\",\n \"baseName\": \"requests\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1DeviceClaim.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.\n*/\nexport class V1beta1DeviceClaimConfiguration {\n static getAttributeTypeMap() {\n return V1beta1DeviceClaimConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1DeviceClaimConfiguration.discriminator = undefined;\nV1beta1DeviceClaimConfiguration.mapping = undefined;\nV1beta1DeviceClaimConfiguration.attributeTypeMap = [\n {\n \"name\": \"opaque\",\n \"baseName\": \"opaque\",\n \"type\": \"V1beta1OpaqueDeviceConfiguration\",\n \"format\": \"\"\n },\n {\n \"name\": \"requests\",\n \"baseName\": \"requests\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1DeviceClaimConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped. This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\n*/\nexport class V1beta1DeviceClass {\n static getAttributeTypeMap() {\n return V1beta1DeviceClass.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1DeviceClass.discriminator = undefined;\nV1beta1DeviceClass.mapping = undefined;\nV1beta1DeviceClass.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1beta1DeviceClassSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1DeviceClass.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceClassConfiguration is used in DeviceClass.\n*/\nexport class V1beta1DeviceClassConfiguration {\n static getAttributeTypeMap() {\n return V1beta1DeviceClassConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1DeviceClassConfiguration.discriminator = undefined;\nV1beta1DeviceClassConfiguration.mapping = undefined;\nV1beta1DeviceClassConfiguration.attributeTypeMap = [\n {\n \"name\": \"opaque\",\n \"baseName\": \"opaque\",\n \"type\": \"V1beta1OpaqueDeviceConfiguration\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1DeviceClassConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceClassList is a collection of classes.\n*/\nexport class V1beta1DeviceClassList {\n static getAttributeTypeMap() {\n return V1beta1DeviceClassList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1DeviceClassList.discriminator = undefined;\nV1beta1DeviceClassList.mapping = undefined;\nV1beta1DeviceClassList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1DeviceClassList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.\n*/\nexport class V1beta1DeviceClassSpec {\n static getAttributeTypeMap() {\n return V1beta1DeviceClassSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1DeviceClassSpec.discriminator = undefined;\nV1beta1DeviceClassSpec.mapping = undefined;\nV1beta1DeviceClassSpec.attributeTypeMap = [\n {\n \"name\": \"config\",\n \"baseName\": \"config\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"selectors\",\n \"baseName\": \"selectors\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1DeviceClassSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceConstraint must have exactly one field set besides Requests.\n*/\nexport class V1beta1DeviceConstraint {\n static getAttributeTypeMap() {\n return V1beta1DeviceConstraint.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1DeviceConstraint.discriminator = undefined;\nV1beta1DeviceConstraint.mapping = undefined;\nV1beta1DeviceConstraint.attributeTypeMap = [\n {\n \"name\": \"matchAttribute\",\n \"baseName\": \"matchAttribute\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"requests\",\n \"baseName\": \"requests\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1DeviceConstraint.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet.\n*/\nexport class V1beta1DeviceCounterConsumption {\n static getAttributeTypeMap() {\n return V1beta1DeviceCounterConsumption.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1DeviceCounterConsumption.discriminator = undefined;\nV1beta1DeviceCounterConsumption.mapping = undefined;\nV1beta1DeviceCounterConsumption.attributeTypeMap = [\n {\n \"name\": \"counterSet\",\n \"baseName\": \"counterSet\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"counters\",\n \"baseName\": \"counters\",\n \"type\": \"{ [key: string]: V1beta1Counter; }\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1DeviceCounterConsumption.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.\n*/\nexport class V1beta1DeviceRequest {\n static getAttributeTypeMap() {\n return V1beta1DeviceRequest.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1DeviceRequest.discriminator = undefined;\nV1beta1DeviceRequest.mapping = undefined;\nV1beta1DeviceRequest.attributeTypeMap = [\n {\n \"name\": \"adminAccess\",\n \"baseName\": \"adminAccess\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"allocationMode\",\n \"baseName\": \"allocationMode\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"count\",\n \"baseName\": \"count\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"deviceClassName\",\n \"baseName\": \"deviceClassName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"firstAvailable\",\n \"baseName\": \"firstAvailable\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"selectors\",\n \"baseName\": \"selectors\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"tolerations\",\n \"baseName\": \"tolerations\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1DeviceRequest.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceRequestAllocationResult contains the allocation result for one request.\n*/\nexport class V1beta1DeviceRequestAllocationResult {\n static getAttributeTypeMap() {\n return V1beta1DeviceRequestAllocationResult.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1DeviceRequestAllocationResult.discriminator = undefined;\nV1beta1DeviceRequestAllocationResult.mapping = undefined;\nV1beta1DeviceRequestAllocationResult.attributeTypeMap = [\n {\n \"name\": \"adminAccess\",\n \"baseName\": \"adminAccess\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"device\",\n \"baseName\": \"device\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"driver\",\n \"baseName\": \"driver\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"pool\",\n \"baseName\": \"pool\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"request\",\n \"baseName\": \"request\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"tolerations\",\n \"baseName\": \"tolerations\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1DeviceRequestAllocationResult.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceSelector must have exactly one field set.\n*/\nexport class V1beta1DeviceSelector {\n static getAttributeTypeMap() {\n return V1beta1DeviceSelector.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1DeviceSelector.discriminator = undefined;\nV1beta1DeviceSelector.mapping = undefined;\nV1beta1DeviceSelector.attributeTypeMap = [\n {\n \"name\": \"cel\",\n \"baseName\": \"cel\",\n \"type\": \"V1beta1CELDeviceSelector\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1DeviceSelector.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices. DeviceSubRequest is similar to Request, but doesn\\'t expose the AdminAccess or FirstAvailable fields, as those can only be set on the top-level request. AdminAccess is not supported for requests with a prioritized list, and recursive FirstAvailable fields are not supported.\n*/\nexport class V1beta1DeviceSubRequest {\n static getAttributeTypeMap() {\n return V1beta1DeviceSubRequest.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1DeviceSubRequest.discriminator = undefined;\nV1beta1DeviceSubRequest.mapping = undefined;\nV1beta1DeviceSubRequest.attributeTypeMap = [\n {\n \"name\": \"allocationMode\",\n \"baseName\": \"allocationMode\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"count\",\n \"baseName\": \"count\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"deviceClassName\",\n \"baseName\": \"deviceClassName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"selectors\",\n \"baseName\": \"selectors\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"tolerations\",\n \"baseName\": \"tolerations\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1DeviceSubRequest.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* The device this taint is attached to has the \\\"effect\\\" on any claim which does not tolerate the taint and, through the claim, to pods using the claim.\n*/\nexport class V1beta1DeviceTaint {\n static getAttributeTypeMap() {\n return V1beta1DeviceTaint.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1DeviceTaint.discriminator = undefined;\nV1beta1DeviceTaint.mapping = undefined;\nV1beta1DeviceTaint.attributeTypeMap = [\n {\n \"name\": \"effect\",\n \"baseName\": \"effect\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"key\",\n \"baseName\": \"key\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"timeAdded\",\n \"baseName\": \"timeAdded\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1DeviceTaint.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple using the matching operator .\n*/\nexport class V1beta1DeviceToleration {\n static getAttributeTypeMap() {\n return V1beta1DeviceToleration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1DeviceToleration.discriminator = undefined;\nV1beta1DeviceToleration.mapping = undefined;\nV1beta1DeviceToleration.attributeTypeMap = [\n {\n \"name\": \"effect\",\n \"baseName\": \"effect\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"key\",\n \"baseName\": \"key\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"operator\",\n \"baseName\": \"operator\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"tolerationSeconds\",\n \"baseName\": \"tolerationSeconds\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1DeviceToleration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ExpressionWarning is a warning information that targets a specific expression.\n*/\nexport class V1beta1ExpressionWarning {\n static getAttributeTypeMap() {\n return V1beta1ExpressionWarning.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ExpressionWarning.discriminator = undefined;\nV1beta1ExpressionWarning.mapping = undefined;\nV1beta1ExpressionWarning.attributeTypeMap = [\n {\n \"name\": \"fieldRef\",\n \"baseName\": \"fieldRef\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"warning\",\n \"baseName\": \"warning\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ExpressionWarning.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses. An IP address can be represented in different formats, to guarantee the uniqueness of the IP, the name of the object is the IP address in canonical format, four decimal digits separated by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6. Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1 Invalid: 10.01.2.3 or 2001:db8:0:0:0::1\n*/\nexport class V1beta1IPAddress {\n static getAttributeTypeMap() {\n return V1beta1IPAddress.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1IPAddress.discriminator = undefined;\nV1beta1IPAddress.mapping = undefined;\nV1beta1IPAddress.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1beta1IPAddressSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1IPAddress.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IPAddressList contains a list of IPAddress.\n*/\nexport class V1beta1IPAddressList {\n static getAttributeTypeMap() {\n return V1beta1IPAddressList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1IPAddressList.discriminator = undefined;\nV1beta1IPAddressList.mapping = undefined;\nV1beta1IPAddressList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1IPAddressList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* IPAddressSpec describe the attributes in an IP Address.\n*/\nexport class V1beta1IPAddressSpec {\n static getAttributeTypeMap() {\n return V1beta1IPAddressSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1IPAddressSpec.discriminator = undefined;\nV1beta1IPAddressSpec.mapping = undefined;\nV1beta1IPAddressSpec.attributeTypeMap = [\n {\n \"name\": \"parentRef\",\n \"baseName\": \"parentRef\",\n \"type\": \"V1beta1ParentReference\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1IPAddressSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates.\n*/\nexport class V1beta1LeaseCandidate {\n static getAttributeTypeMap() {\n return V1beta1LeaseCandidate.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1LeaseCandidate.discriminator = undefined;\nV1beta1LeaseCandidate.mapping = undefined;\nV1beta1LeaseCandidate.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1beta1LeaseCandidateSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1LeaseCandidate.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LeaseCandidateList is a list of Lease objects.\n*/\nexport class V1beta1LeaseCandidateList {\n static getAttributeTypeMap() {\n return V1beta1LeaseCandidateList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1LeaseCandidateList.discriminator = undefined;\nV1beta1LeaseCandidateList.mapping = undefined;\nV1beta1LeaseCandidateList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1LeaseCandidateList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* LeaseCandidateSpec is a specification of a Lease.\n*/\nexport class V1beta1LeaseCandidateSpec {\n static getAttributeTypeMap() {\n return V1beta1LeaseCandidateSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1LeaseCandidateSpec.discriminator = undefined;\nV1beta1LeaseCandidateSpec.mapping = undefined;\nV1beta1LeaseCandidateSpec.attributeTypeMap = [\n {\n \"name\": \"binaryVersion\",\n \"baseName\": \"binaryVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"emulationVersion\",\n \"baseName\": \"emulationVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"leaseName\",\n \"baseName\": \"leaseName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"pingTime\",\n \"baseName\": \"pingTime\",\n \"type\": \"V1MicroTime\",\n \"format\": \"date-time-micro\"\n },\n {\n \"name\": \"renewTime\",\n \"baseName\": \"renewTime\",\n \"type\": \"V1MicroTime\",\n \"format\": \"date-time-micro\"\n },\n {\n \"name\": \"strategy\",\n \"baseName\": \"strategy\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1LeaseCandidateSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook.\n*/\nexport class V1beta1MatchCondition {\n static getAttributeTypeMap() {\n return V1beta1MatchCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1MatchCondition.discriminator = undefined;\nV1beta1MatchCondition.mapping = undefined;\nV1beta1MatchCondition.attributeTypeMap = [\n {\n \"name\": \"expression\",\n \"baseName\": \"expression\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1MatchCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n*/\nexport class V1beta1MatchResources {\n static getAttributeTypeMap() {\n return V1beta1MatchResources.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1MatchResources.discriminator = undefined;\nV1beta1MatchResources.mapping = undefined;\nV1beta1MatchResources.attributeTypeMap = [\n {\n \"name\": \"excludeResourceRules\",\n \"baseName\": \"excludeResourceRules\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"matchPolicy\",\n \"baseName\": \"matchPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespaceSelector\",\n \"baseName\": \"namespaceSelector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"objectSelector\",\n \"baseName\": \"objectSelector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceRules\",\n \"baseName\": \"resourceRules\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1MatchResources.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.\n*/\nexport class V1beta1NamedRuleWithOperations {\n static getAttributeTypeMap() {\n return V1beta1NamedRuleWithOperations.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1NamedRuleWithOperations.discriminator = undefined;\nV1beta1NamedRuleWithOperations.mapping = undefined;\nV1beta1NamedRuleWithOperations.attributeTypeMap = [\n {\n \"name\": \"apiGroups\",\n \"baseName\": \"apiGroups\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"apiVersions\",\n \"baseName\": \"apiVersions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"operations\",\n \"baseName\": \"operations\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceNames\",\n \"baseName\": \"resourceNames\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"resources\",\n \"baseName\": \"resources\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"scope\",\n \"baseName\": \"scope\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1NamedRuleWithOperations.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NetworkDeviceData provides network-related details for the allocated device. This information may be filled by drivers or other components to configure or identify the device within a network context.\n*/\nexport class V1beta1NetworkDeviceData {\n static getAttributeTypeMap() {\n return V1beta1NetworkDeviceData.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1NetworkDeviceData.discriminator = undefined;\nV1beta1NetworkDeviceData.mapping = undefined;\nV1beta1NetworkDeviceData.attributeTypeMap = [\n {\n \"name\": \"hardwareAddress\",\n \"baseName\": \"hardwareAddress\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"interfaceName\",\n \"baseName\": \"interfaceName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"ips\",\n \"baseName\": \"ips\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1NetworkDeviceData.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.\n*/\nexport class V1beta1OpaqueDeviceConfiguration {\n static getAttributeTypeMap() {\n return V1beta1OpaqueDeviceConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1OpaqueDeviceConfiguration.discriminator = undefined;\nV1beta1OpaqueDeviceConfiguration.mapping = undefined;\nV1beta1OpaqueDeviceConfiguration.attributeTypeMap = [\n {\n \"name\": \"driver\",\n \"baseName\": \"driver\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"parameters\",\n \"baseName\": \"parameters\",\n \"type\": \"any\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1OpaqueDeviceConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ParamKind is a tuple of Group Kind and Version.\n*/\nexport class V1beta1ParamKind {\n static getAttributeTypeMap() {\n return V1beta1ParamKind.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ParamKind.discriminator = undefined;\nV1beta1ParamKind.mapping = undefined;\nV1beta1ParamKind.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ParamKind.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.\n*/\nexport class V1beta1ParamRef {\n static getAttributeTypeMap() {\n return V1beta1ParamRef.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ParamRef.discriminator = undefined;\nV1beta1ParamRef.mapping = undefined;\nV1beta1ParamRef.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespace\",\n \"baseName\": \"namespace\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"parameterNotFoundAction\",\n \"baseName\": \"parameterNotFoundAction\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"selector\",\n \"baseName\": \"selector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ParamRef.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ParentReference describes a reference to a parent object.\n*/\nexport class V1beta1ParentReference {\n static getAttributeTypeMap() {\n return V1beta1ParentReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ParentReference.discriminator = undefined;\nV1beta1ParentReference.mapping = undefined;\nV1beta1ParentReference.attributeTypeMap = [\n {\n \"name\": \"group\",\n \"baseName\": \"group\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"namespace\",\n \"baseName\": \"namespace\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resource\",\n \"baseName\": \"resource\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ParentReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\n*/\nexport class V1beta1ResourceClaim {\n static getAttributeTypeMap() {\n return V1beta1ResourceClaim.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ResourceClaim.discriminator = undefined;\nV1beta1ResourceClaim.mapping = undefined;\nV1beta1ResourceClaim.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1beta1ResourceClaimSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1beta1ResourceClaimStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ResourceClaim.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimConsumerReference contains enough information to let you locate the consumer of a ResourceClaim. The user must be a resource in the same namespace as the ResourceClaim.\n*/\nexport class V1beta1ResourceClaimConsumerReference {\n static getAttributeTypeMap() {\n return V1beta1ResourceClaimConsumerReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ResourceClaimConsumerReference.discriminator = undefined;\nV1beta1ResourceClaimConsumerReference.mapping = undefined;\nV1beta1ResourceClaimConsumerReference.attributeTypeMap = [\n {\n \"name\": \"apiGroup\",\n \"baseName\": \"apiGroup\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resource\",\n \"baseName\": \"resource\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"uid\",\n \"baseName\": \"uid\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ResourceClaimConsumerReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimList is a collection of claims.\n*/\nexport class V1beta1ResourceClaimList {\n static getAttributeTypeMap() {\n return V1beta1ResourceClaimList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ResourceClaimList.discriminator = undefined;\nV1beta1ResourceClaimList.mapping = undefined;\nV1beta1ResourceClaimList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ResourceClaimList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.\n*/\nexport class V1beta1ResourceClaimSpec {\n static getAttributeTypeMap() {\n return V1beta1ResourceClaimSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ResourceClaimSpec.discriminator = undefined;\nV1beta1ResourceClaimSpec.mapping = undefined;\nV1beta1ResourceClaimSpec.attributeTypeMap = [\n {\n \"name\": \"devices\",\n \"baseName\": \"devices\",\n \"type\": \"V1beta1DeviceClaim\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ResourceClaimSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.\n*/\nexport class V1beta1ResourceClaimStatus {\n static getAttributeTypeMap() {\n return V1beta1ResourceClaimStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ResourceClaimStatus.discriminator = undefined;\nV1beta1ResourceClaimStatus.mapping = undefined;\nV1beta1ResourceClaimStatus.attributeTypeMap = [\n {\n \"name\": \"allocation\",\n \"baseName\": \"allocation\",\n \"type\": \"V1beta1AllocationResult\",\n \"format\": \"\"\n },\n {\n \"name\": \"devices\",\n \"baseName\": \"devices\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"reservedFor\",\n \"baseName\": \"reservedFor\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ResourceClaimStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimTemplate is used to produce ResourceClaim objects. This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\n*/\nexport class V1beta1ResourceClaimTemplate {\n static getAttributeTypeMap() {\n return V1beta1ResourceClaimTemplate.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ResourceClaimTemplate.discriminator = undefined;\nV1beta1ResourceClaimTemplate.mapping = undefined;\nV1beta1ResourceClaimTemplate.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1beta1ResourceClaimTemplateSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ResourceClaimTemplate.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimTemplateList is a collection of claim templates.\n*/\nexport class V1beta1ResourceClaimTemplateList {\n static getAttributeTypeMap() {\n return V1beta1ResourceClaimTemplateList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ResourceClaimTemplateList.discriminator = undefined;\nV1beta1ResourceClaimTemplateList.mapping = undefined;\nV1beta1ResourceClaimTemplateList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ResourceClaimTemplateList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.\n*/\nexport class V1beta1ResourceClaimTemplateSpec {\n static getAttributeTypeMap() {\n return V1beta1ResourceClaimTemplateSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ResourceClaimTemplateSpec.discriminator = undefined;\nV1beta1ResourceClaimTemplateSpec.mapping = undefined;\nV1beta1ResourceClaimTemplateSpec.attributeTypeMap = [\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1beta1ResourceClaimSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ResourceClaimTemplateSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourcePool describes the pool that ResourceSlices belong to.\n*/\nexport class V1beta1ResourcePool {\n static getAttributeTypeMap() {\n return V1beta1ResourcePool.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ResourcePool.discriminator = undefined;\nV1beta1ResourcePool.mapping = undefined;\nV1beta1ResourcePool.attributeTypeMap = [\n {\n \"name\": \"generation\",\n \"baseName\": \"generation\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceSliceCount\",\n \"baseName\": \"resourceSliceCount\",\n \"type\": \"number\",\n \"format\": \"int64\"\n }\n];\n//# sourceMappingURL=V1beta1ResourcePool.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceSlice represents one or more resources in a pool of similar resources, managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many ResourceSlices comprise a pool is determined by the driver. At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\n*/\nexport class V1beta1ResourceSlice {\n static getAttributeTypeMap() {\n return V1beta1ResourceSlice.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ResourceSlice.discriminator = undefined;\nV1beta1ResourceSlice.mapping = undefined;\nV1beta1ResourceSlice.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1beta1ResourceSliceSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ResourceSlice.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceSliceList is a collection of ResourceSlices.\n*/\nexport class V1beta1ResourceSliceList {\n static getAttributeTypeMap() {\n return V1beta1ResourceSliceList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ResourceSliceList.discriminator = undefined;\nV1beta1ResourceSliceList.mapping = undefined;\nV1beta1ResourceSliceList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ResourceSliceList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceSliceSpec contains the information published by the driver in one ResourceSlice.\n*/\nexport class V1beta1ResourceSliceSpec {\n static getAttributeTypeMap() {\n return V1beta1ResourceSliceSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ResourceSliceSpec.discriminator = undefined;\nV1beta1ResourceSliceSpec.mapping = undefined;\nV1beta1ResourceSliceSpec.attributeTypeMap = [\n {\n \"name\": \"allNodes\",\n \"baseName\": \"allNodes\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"devices\",\n \"baseName\": \"devices\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"driver\",\n \"baseName\": \"driver\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeName\",\n \"baseName\": \"nodeName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeSelector\",\n \"baseName\": \"nodeSelector\",\n \"type\": \"V1NodeSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"perDeviceNodeSelection\",\n \"baseName\": \"perDeviceNodeSelection\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"pool\",\n \"baseName\": \"pool\",\n \"type\": \"V1beta1ResourcePool\",\n \"format\": \"\"\n },\n {\n \"name\": \"sharedCounters\",\n \"baseName\": \"sharedCounters\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ResourceSliceSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceCIDR defines a range of IP addresses using CIDR format (e.g. 192.168.0.0/24 or 2001:db2::/64). This range is used to allocate ClusterIPs to Service objects.\n*/\nexport class V1beta1ServiceCIDR {\n static getAttributeTypeMap() {\n return V1beta1ServiceCIDR.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ServiceCIDR.discriminator = undefined;\nV1beta1ServiceCIDR.mapping = undefined;\nV1beta1ServiceCIDR.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1beta1ServiceCIDRSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1beta1ServiceCIDRStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ServiceCIDR.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceCIDRList contains a list of ServiceCIDR objects.\n*/\nexport class V1beta1ServiceCIDRList {\n static getAttributeTypeMap() {\n return V1beta1ServiceCIDRList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ServiceCIDRList.discriminator = undefined;\nV1beta1ServiceCIDRList.mapping = undefined;\nV1beta1ServiceCIDRList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ServiceCIDRList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceCIDRSpec define the CIDRs the user wants to use for allocating ClusterIPs for Services.\n*/\nexport class V1beta1ServiceCIDRSpec {\n static getAttributeTypeMap() {\n return V1beta1ServiceCIDRSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ServiceCIDRSpec.discriminator = undefined;\nV1beta1ServiceCIDRSpec.mapping = undefined;\nV1beta1ServiceCIDRSpec.attributeTypeMap = [\n {\n \"name\": \"cidrs\",\n \"baseName\": \"cidrs\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ServiceCIDRSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ServiceCIDRStatus describes the current state of the ServiceCIDR.\n*/\nexport class V1beta1ServiceCIDRStatus {\n static getAttributeTypeMap() {\n return V1beta1ServiceCIDRStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ServiceCIDRStatus.discriminator = undefined;\nV1beta1ServiceCIDRStatus.mapping = undefined;\nV1beta1ServiceCIDRStatus.attributeTypeMap = [\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ServiceCIDRStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* TypeChecking contains results of type checking the expressions in the ValidatingAdmissionPolicy\n*/\nexport class V1beta1TypeChecking {\n static getAttributeTypeMap() {\n return V1beta1TypeChecking.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1TypeChecking.discriminator = undefined;\nV1beta1TypeChecking.mapping = undefined;\nV1beta1TypeChecking.attributeTypeMap = [\n {\n \"name\": \"expressionWarnings\",\n \"baseName\": \"expressionWarnings\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1TypeChecking.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.\n*/\nexport class V1beta1ValidatingAdmissionPolicy {\n static getAttributeTypeMap() {\n return V1beta1ValidatingAdmissionPolicy.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ValidatingAdmissionPolicy.discriminator = undefined;\nV1beta1ValidatingAdmissionPolicy.mapping = undefined;\nV1beta1ValidatingAdmissionPolicy.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1beta1ValidatingAdmissionPolicySpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1beta1ValidatingAdmissionPolicyStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ValidatingAdmissionPolicy.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don\\'t use params, otherwise N is the number of parameters selected by the binding. The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget.\n*/\nexport class V1beta1ValidatingAdmissionPolicyBinding {\n static getAttributeTypeMap() {\n return V1beta1ValidatingAdmissionPolicyBinding.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ValidatingAdmissionPolicyBinding.discriminator = undefined;\nV1beta1ValidatingAdmissionPolicyBinding.mapping = undefined;\nV1beta1ValidatingAdmissionPolicyBinding.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1beta1ValidatingAdmissionPolicyBindingSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ValidatingAdmissionPolicyBinding.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.\n*/\nexport class V1beta1ValidatingAdmissionPolicyBindingList {\n static getAttributeTypeMap() {\n return V1beta1ValidatingAdmissionPolicyBindingList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ValidatingAdmissionPolicyBindingList.discriminator = undefined;\nV1beta1ValidatingAdmissionPolicyBindingList.mapping = undefined;\nV1beta1ValidatingAdmissionPolicyBindingList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ValidatingAdmissionPolicyBindingList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.\n*/\nexport class V1beta1ValidatingAdmissionPolicyBindingSpec {\n static getAttributeTypeMap() {\n return V1beta1ValidatingAdmissionPolicyBindingSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ValidatingAdmissionPolicyBindingSpec.discriminator = undefined;\nV1beta1ValidatingAdmissionPolicyBindingSpec.mapping = undefined;\nV1beta1ValidatingAdmissionPolicyBindingSpec.attributeTypeMap = [\n {\n \"name\": \"matchResources\",\n \"baseName\": \"matchResources\",\n \"type\": \"V1beta1MatchResources\",\n \"format\": \"\"\n },\n {\n \"name\": \"paramRef\",\n \"baseName\": \"paramRef\",\n \"type\": \"V1beta1ParamRef\",\n \"format\": \"\"\n },\n {\n \"name\": \"policyName\",\n \"baseName\": \"policyName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"validationActions\",\n \"baseName\": \"validationActions\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ValidatingAdmissionPolicyBindingSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.\n*/\nexport class V1beta1ValidatingAdmissionPolicyList {\n static getAttributeTypeMap() {\n return V1beta1ValidatingAdmissionPolicyList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ValidatingAdmissionPolicyList.discriminator = undefined;\nV1beta1ValidatingAdmissionPolicyList.mapping = undefined;\nV1beta1ValidatingAdmissionPolicyList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ValidatingAdmissionPolicyList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.\n*/\nexport class V1beta1ValidatingAdmissionPolicySpec {\n static getAttributeTypeMap() {\n return V1beta1ValidatingAdmissionPolicySpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ValidatingAdmissionPolicySpec.discriminator = undefined;\nV1beta1ValidatingAdmissionPolicySpec.mapping = undefined;\nV1beta1ValidatingAdmissionPolicySpec.attributeTypeMap = [\n {\n \"name\": \"auditAnnotations\",\n \"baseName\": \"auditAnnotations\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"failurePolicy\",\n \"baseName\": \"failurePolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"matchConditions\",\n \"baseName\": \"matchConditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"matchConstraints\",\n \"baseName\": \"matchConstraints\",\n \"type\": \"V1beta1MatchResources\",\n \"format\": \"\"\n },\n {\n \"name\": \"paramKind\",\n \"baseName\": \"paramKind\",\n \"type\": \"V1beta1ParamKind\",\n \"format\": \"\"\n },\n {\n \"name\": \"validations\",\n \"baseName\": \"validations\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"variables\",\n \"baseName\": \"variables\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ValidatingAdmissionPolicySpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ValidatingAdmissionPolicyStatus represents the status of an admission validation policy.\n*/\nexport class V1beta1ValidatingAdmissionPolicyStatus {\n static getAttributeTypeMap() {\n return V1beta1ValidatingAdmissionPolicyStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1ValidatingAdmissionPolicyStatus.discriminator = undefined;\nV1beta1ValidatingAdmissionPolicyStatus.mapping = undefined;\nV1beta1ValidatingAdmissionPolicyStatus.attributeTypeMap = [\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"observedGeneration\",\n \"baseName\": \"observedGeneration\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"typeChecking\",\n \"baseName\": \"typeChecking\",\n \"type\": \"V1beta1TypeChecking\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1ValidatingAdmissionPolicyStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Validation specifies the CEL expression which is used to apply the validation.\n*/\nexport class V1beta1Validation {\n static getAttributeTypeMap() {\n return V1beta1Validation.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1Validation.discriminator = undefined;\nV1beta1Validation.mapping = undefined;\nV1beta1Validation.attributeTypeMap = [\n {\n \"name\": \"expression\",\n \"baseName\": \"expression\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"messageExpression\",\n \"baseName\": \"messageExpression\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1Validation.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Variable is the definition of a variable that is used for composition. A variable is defined as a named expression.\n*/\nexport class V1beta1Variable {\n static getAttributeTypeMap() {\n return V1beta1Variable.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1Variable.discriminator = undefined;\nV1beta1Variable.mapping = undefined;\nV1beta1Variable.attributeTypeMap = [\n {\n \"name\": \"expression\",\n \"baseName\": \"expression\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1Variable.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* VolumeAttributesClass represents a specification of mutable volume attributes defined by the CSI driver. The class can be specified during dynamic provisioning of PersistentVolumeClaims, and changed in the PersistentVolumeClaim spec after provisioning.\n*/\nexport class V1beta1VolumeAttributesClass {\n static getAttributeTypeMap() {\n return V1beta1VolumeAttributesClass.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1VolumeAttributesClass.discriminator = undefined;\nV1beta1VolumeAttributesClass.mapping = undefined;\nV1beta1VolumeAttributesClass.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"driverName\",\n \"baseName\": \"driverName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"parameters\",\n \"baseName\": \"parameters\",\n \"type\": \"{ [key: string]: string; }\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1VolumeAttributesClass.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* VolumeAttributesClassList is a collection of VolumeAttributesClass objects.\n*/\nexport class V1beta1VolumeAttributesClassList {\n static getAttributeTypeMap() {\n return V1beta1VolumeAttributesClassList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta1VolumeAttributesClassList.discriminator = undefined;\nV1beta1VolumeAttributesClassList.mapping = undefined;\nV1beta1VolumeAttributesClassList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta1VolumeAttributesClassList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.\n*/\nexport class V1beta2AllocatedDeviceStatus {\n static getAttributeTypeMap() {\n return V1beta2AllocatedDeviceStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2AllocatedDeviceStatus.discriminator = undefined;\nV1beta2AllocatedDeviceStatus.mapping = undefined;\nV1beta2AllocatedDeviceStatus.attributeTypeMap = [\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"data\",\n \"baseName\": \"data\",\n \"type\": \"any\",\n \"format\": \"\"\n },\n {\n \"name\": \"device\",\n \"baseName\": \"device\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"driver\",\n \"baseName\": \"driver\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"networkData\",\n \"baseName\": \"networkData\",\n \"type\": \"V1beta2NetworkDeviceData\",\n \"format\": \"\"\n },\n {\n \"name\": \"pool\",\n \"baseName\": \"pool\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2AllocatedDeviceStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* AllocationResult contains attributes of an allocated resource.\n*/\nexport class V1beta2AllocationResult {\n static getAttributeTypeMap() {\n return V1beta2AllocationResult.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2AllocationResult.discriminator = undefined;\nV1beta2AllocationResult.mapping = undefined;\nV1beta2AllocationResult.attributeTypeMap = [\n {\n \"name\": \"devices\",\n \"baseName\": \"devices\",\n \"type\": \"V1beta2DeviceAllocationResult\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeSelector\",\n \"baseName\": \"nodeSelector\",\n \"type\": \"V1NodeSelector\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2AllocationResult.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CELDeviceSelector contains a CEL expression for selecting a device.\n*/\nexport class V1beta2CELDeviceSelector {\n static getAttributeTypeMap() {\n return V1beta2CELDeviceSelector.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2CELDeviceSelector.discriminator = undefined;\nV1beta2CELDeviceSelector.mapping = undefined;\nV1beta2CELDeviceSelector.attributeTypeMap = [\n {\n \"name\": \"expression\",\n \"baseName\": \"expression\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2CELDeviceSelector.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Counter describes a quantity associated with a device.\n*/\nexport class V1beta2Counter {\n static getAttributeTypeMap() {\n return V1beta2Counter.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2Counter.discriminator = undefined;\nV1beta2Counter.mapping = undefined;\nV1beta2Counter.attributeTypeMap = [\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2Counter.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CounterSet defines a named set of counters that are available to be used by devices defined in the ResourceSlice. The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices.\n*/\nexport class V1beta2CounterSet {\n static getAttributeTypeMap() {\n return V1beta2CounterSet.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2CounterSet.discriminator = undefined;\nV1beta2CounterSet.mapping = undefined;\nV1beta2CounterSet.attributeTypeMap = [\n {\n \"name\": \"counters\",\n \"baseName\": \"counters\",\n \"type\": \"{ [key: string]: V1beta2Counter; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2CounterSet.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.\n*/\nexport class V1beta2Device {\n static getAttributeTypeMap() {\n return V1beta2Device.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2Device.discriminator = undefined;\nV1beta2Device.mapping = undefined;\nV1beta2Device.attributeTypeMap = [\n {\n \"name\": \"allNodes\",\n \"baseName\": \"allNodes\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"attributes\",\n \"baseName\": \"attributes\",\n \"type\": \"{ [key: string]: V1beta2DeviceAttribute; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"capacity\",\n \"baseName\": \"capacity\",\n \"type\": \"{ [key: string]: V1beta2DeviceCapacity; }\",\n \"format\": \"\"\n },\n {\n \"name\": \"consumesCounters\",\n \"baseName\": \"consumesCounters\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeName\",\n \"baseName\": \"nodeName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeSelector\",\n \"baseName\": \"nodeSelector\",\n \"type\": \"V1NodeSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"taints\",\n \"baseName\": \"taints\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2Device.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceAllocationConfiguration gets embedded in an AllocationResult.\n*/\nexport class V1beta2DeviceAllocationConfiguration {\n static getAttributeTypeMap() {\n return V1beta2DeviceAllocationConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2DeviceAllocationConfiguration.discriminator = undefined;\nV1beta2DeviceAllocationConfiguration.mapping = undefined;\nV1beta2DeviceAllocationConfiguration.attributeTypeMap = [\n {\n \"name\": \"opaque\",\n \"baseName\": \"opaque\",\n \"type\": \"V1beta2OpaqueDeviceConfiguration\",\n \"format\": \"\"\n },\n {\n \"name\": \"requests\",\n \"baseName\": \"requests\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"source\",\n \"baseName\": \"source\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2DeviceAllocationConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceAllocationResult is the result of allocating devices.\n*/\nexport class V1beta2DeviceAllocationResult {\n static getAttributeTypeMap() {\n return V1beta2DeviceAllocationResult.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2DeviceAllocationResult.discriminator = undefined;\nV1beta2DeviceAllocationResult.mapping = undefined;\nV1beta2DeviceAllocationResult.attributeTypeMap = [\n {\n \"name\": \"config\",\n \"baseName\": \"config\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"results\",\n \"baseName\": \"results\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2DeviceAllocationResult.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceAttribute must have exactly one field set.\n*/\nexport class V1beta2DeviceAttribute {\n static getAttributeTypeMap() {\n return V1beta2DeviceAttribute.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2DeviceAttribute.discriminator = undefined;\nV1beta2DeviceAttribute.mapping = undefined;\nV1beta2DeviceAttribute.attributeTypeMap = [\n {\n \"name\": \"bool\",\n \"baseName\": \"bool\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"_int\",\n \"baseName\": \"int\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"string\",\n \"baseName\": \"string\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"version\",\n \"baseName\": \"version\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2DeviceAttribute.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceCapacity describes a quantity associated with a device.\n*/\nexport class V1beta2DeviceCapacity {\n static getAttributeTypeMap() {\n return V1beta2DeviceCapacity.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2DeviceCapacity.discriminator = undefined;\nV1beta2DeviceCapacity.mapping = undefined;\nV1beta2DeviceCapacity.attributeTypeMap = [\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2DeviceCapacity.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceClaim defines how to request devices with a ResourceClaim.\n*/\nexport class V1beta2DeviceClaim {\n static getAttributeTypeMap() {\n return V1beta2DeviceClaim.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2DeviceClaim.discriminator = undefined;\nV1beta2DeviceClaim.mapping = undefined;\nV1beta2DeviceClaim.attributeTypeMap = [\n {\n \"name\": \"config\",\n \"baseName\": \"config\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"constraints\",\n \"baseName\": \"constraints\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"requests\",\n \"baseName\": \"requests\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2DeviceClaim.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.\n*/\nexport class V1beta2DeviceClaimConfiguration {\n static getAttributeTypeMap() {\n return V1beta2DeviceClaimConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2DeviceClaimConfiguration.discriminator = undefined;\nV1beta2DeviceClaimConfiguration.mapping = undefined;\nV1beta2DeviceClaimConfiguration.attributeTypeMap = [\n {\n \"name\": \"opaque\",\n \"baseName\": \"opaque\",\n \"type\": \"V1beta2OpaqueDeviceConfiguration\",\n \"format\": \"\"\n },\n {\n \"name\": \"requests\",\n \"baseName\": \"requests\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2DeviceClaimConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped. This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\n*/\nexport class V1beta2DeviceClass {\n static getAttributeTypeMap() {\n return V1beta2DeviceClass.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2DeviceClass.discriminator = undefined;\nV1beta2DeviceClass.mapping = undefined;\nV1beta2DeviceClass.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1beta2DeviceClassSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2DeviceClass.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceClassConfiguration is used in DeviceClass.\n*/\nexport class V1beta2DeviceClassConfiguration {\n static getAttributeTypeMap() {\n return V1beta2DeviceClassConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2DeviceClassConfiguration.discriminator = undefined;\nV1beta2DeviceClassConfiguration.mapping = undefined;\nV1beta2DeviceClassConfiguration.attributeTypeMap = [\n {\n \"name\": \"opaque\",\n \"baseName\": \"opaque\",\n \"type\": \"V1beta2OpaqueDeviceConfiguration\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2DeviceClassConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceClassList is a collection of classes.\n*/\nexport class V1beta2DeviceClassList {\n static getAttributeTypeMap() {\n return V1beta2DeviceClassList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2DeviceClassList.discriminator = undefined;\nV1beta2DeviceClassList.mapping = undefined;\nV1beta2DeviceClassList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2DeviceClassList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.\n*/\nexport class V1beta2DeviceClassSpec {\n static getAttributeTypeMap() {\n return V1beta2DeviceClassSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2DeviceClassSpec.discriminator = undefined;\nV1beta2DeviceClassSpec.mapping = undefined;\nV1beta2DeviceClassSpec.attributeTypeMap = [\n {\n \"name\": \"config\",\n \"baseName\": \"config\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"selectors\",\n \"baseName\": \"selectors\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2DeviceClassSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceConstraint must have exactly one field set besides Requests.\n*/\nexport class V1beta2DeviceConstraint {\n static getAttributeTypeMap() {\n return V1beta2DeviceConstraint.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2DeviceConstraint.discriminator = undefined;\nV1beta2DeviceConstraint.mapping = undefined;\nV1beta2DeviceConstraint.attributeTypeMap = [\n {\n \"name\": \"matchAttribute\",\n \"baseName\": \"matchAttribute\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"requests\",\n \"baseName\": \"requests\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2DeviceConstraint.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet.\n*/\nexport class V1beta2DeviceCounterConsumption {\n static getAttributeTypeMap() {\n return V1beta2DeviceCounterConsumption.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2DeviceCounterConsumption.discriminator = undefined;\nV1beta2DeviceCounterConsumption.mapping = undefined;\nV1beta2DeviceCounterConsumption.attributeTypeMap = [\n {\n \"name\": \"counterSet\",\n \"baseName\": \"counterSet\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"counters\",\n \"baseName\": \"counters\",\n \"type\": \"{ [key: string]: V1beta2Counter; }\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2DeviceCounterConsumption.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices. With FirstAvailable it is also possible to provide a prioritized list of requests.\n*/\nexport class V1beta2DeviceRequest {\n static getAttributeTypeMap() {\n return V1beta2DeviceRequest.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2DeviceRequest.discriminator = undefined;\nV1beta2DeviceRequest.mapping = undefined;\nV1beta2DeviceRequest.attributeTypeMap = [\n {\n \"name\": \"exactly\",\n \"baseName\": \"exactly\",\n \"type\": \"V1beta2ExactDeviceRequest\",\n \"format\": \"\"\n },\n {\n \"name\": \"firstAvailable\",\n \"baseName\": \"firstAvailable\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2DeviceRequest.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceRequestAllocationResult contains the allocation result for one request.\n*/\nexport class V1beta2DeviceRequestAllocationResult {\n static getAttributeTypeMap() {\n return V1beta2DeviceRequestAllocationResult.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2DeviceRequestAllocationResult.discriminator = undefined;\nV1beta2DeviceRequestAllocationResult.mapping = undefined;\nV1beta2DeviceRequestAllocationResult.attributeTypeMap = [\n {\n \"name\": \"adminAccess\",\n \"baseName\": \"adminAccess\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"device\",\n \"baseName\": \"device\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"driver\",\n \"baseName\": \"driver\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"pool\",\n \"baseName\": \"pool\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"request\",\n \"baseName\": \"request\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"tolerations\",\n \"baseName\": \"tolerations\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2DeviceRequestAllocationResult.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceSelector must have exactly one field set.\n*/\nexport class V1beta2DeviceSelector {\n static getAttributeTypeMap() {\n return V1beta2DeviceSelector.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2DeviceSelector.discriminator = undefined;\nV1beta2DeviceSelector.mapping = undefined;\nV1beta2DeviceSelector.attributeTypeMap = [\n {\n \"name\": \"cel\",\n \"baseName\": \"cel\",\n \"type\": \"V1beta2CELDeviceSelector\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2DeviceSelector.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices. DeviceSubRequest is similar to ExactDeviceRequest, but doesn\\'t expose the AdminAccess field as that one is only supported when requesting a specific device.\n*/\nexport class V1beta2DeviceSubRequest {\n static getAttributeTypeMap() {\n return V1beta2DeviceSubRequest.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2DeviceSubRequest.discriminator = undefined;\nV1beta2DeviceSubRequest.mapping = undefined;\nV1beta2DeviceSubRequest.attributeTypeMap = [\n {\n \"name\": \"allocationMode\",\n \"baseName\": \"allocationMode\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"count\",\n \"baseName\": \"count\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"deviceClassName\",\n \"baseName\": \"deviceClassName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"selectors\",\n \"baseName\": \"selectors\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"tolerations\",\n \"baseName\": \"tolerations\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2DeviceSubRequest.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* The device this taint is attached to has the \\\"effect\\\" on any claim which does not tolerate the taint and, through the claim, to pods using the claim.\n*/\nexport class V1beta2DeviceTaint {\n static getAttributeTypeMap() {\n return V1beta2DeviceTaint.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2DeviceTaint.discriminator = undefined;\nV1beta2DeviceTaint.mapping = undefined;\nV1beta2DeviceTaint.attributeTypeMap = [\n {\n \"name\": \"effect\",\n \"baseName\": \"effect\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"key\",\n \"baseName\": \"key\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"timeAdded\",\n \"baseName\": \"timeAdded\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2DeviceTaint.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple using the matching operator .\n*/\nexport class V1beta2DeviceToleration {\n static getAttributeTypeMap() {\n return V1beta2DeviceToleration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2DeviceToleration.discriminator = undefined;\nV1beta2DeviceToleration.mapping = undefined;\nV1beta2DeviceToleration.attributeTypeMap = [\n {\n \"name\": \"effect\",\n \"baseName\": \"effect\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"key\",\n \"baseName\": \"key\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"operator\",\n \"baseName\": \"operator\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"tolerationSeconds\",\n \"baseName\": \"tolerationSeconds\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2DeviceToleration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ExactDeviceRequest is a request for one or more identical devices.\n*/\nexport class V1beta2ExactDeviceRequest {\n static getAttributeTypeMap() {\n return V1beta2ExactDeviceRequest.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2ExactDeviceRequest.discriminator = undefined;\nV1beta2ExactDeviceRequest.mapping = undefined;\nV1beta2ExactDeviceRequest.attributeTypeMap = [\n {\n \"name\": \"adminAccess\",\n \"baseName\": \"adminAccess\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"allocationMode\",\n \"baseName\": \"allocationMode\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"count\",\n \"baseName\": \"count\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"deviceClassName\",\n \"baseName\": \"deviceClassName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"selectors\",\n \"baseName\": \"selectors\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"tolerations\",\n \"baseName\": \"tolerations\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2ExactDeviceRequest.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* NetworkDeviceData provides network-related details for the allocated device. This information may be filled by drivers or other components to configure or identify the device within a network context.\n*/\nexport class V1beta2NetworkDeviceData {\n static getAttributeTypeMap() {\n return V1beta2NetworkDeviceData.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2NetworkDeviceData.discriminator = undefined;\nV1beta2NetworkDeviceData.mapping = undefined;\nV1beta2NetworkDeviceData.attributeTypeMap = [\n {\n \"name\": \"hardwareAddress\",\n \"baseName\": \"hardwareAddress\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"interfaceName\",\n \"baseName\": \"interfaceName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"ips\",\n \"baseName\": \"ips\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2NetworkDeviceData.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.\n*/\nexport class V1beta2OpaqueDeviceConfiguration {\n static getAttributeTypeMap() {\n return V1beta2OpaqueDeviceConfiguration.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2OpaqueDeviceConfiguration.discriminator = undefined;\nV1beta2OpaqueDeviceConfiguration.mapping = undefined;\nV1beta2OpaqueDeviceConfiguration.attributeTypeMap = [\n {\n \"name\": \"driver\",\n \"baseName\": \"driver\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"parameters\",\n \"baseName\": \"parameters\",\n \"type\": \"any\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2OpaqueDeviceConfiguration.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated. This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\n*/\nexport class V1beta2ResourceClaim {\n static getAttributeTypeMap() {\n return V1beta2ResourceClaim.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2ResourceClaim.discriminator = undefined;\nV1beta2ResourceClaim.mapping = undefined;\nV1beta2ResourceClaim.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1beta2ResourceClaimSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V1beta2ResourceClaimStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2ResourceClaim.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimConsumerReference contains enough information to let you locate the consumer of a ResourceClaim. The user must be a resource in the same namespace as the ResourceClaim.\n*/\nexport class V1beta2ResourceClaimConsumerReference {\n static getAttributeTypeMap() {\n return V1beta2ResourceClaimConsumerReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2ResourceClaimConsumerReference.discriminator = undefined;\nV1beta2ResourceClaimConsumerReference.mapping = undefined;\nV1beta2ResourceClaimConsumerReference.attributeTypeMap = [\n {\n \"name\": \"apiGroup\",\n \"baseName\": \"apiGroup\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resource\",\n \"baseName\": \"resource\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"uid\",\n \"baseName\": \"uid\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2ResourceClaimConsumerReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimList is a collection of claims.\n*/\nexport class V1beta2ResourceClaimList {\n static getAttributeTypeMap() {\n return V1beta2ResourceClaimList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2ResourceClaimList.discriminator = undefined;\nV1beta2ResourceClaimList.mapping = undefined;\nV1beta2ResourceClaimList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2ResourceClaimList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.\n*/\nexport class V1beta2ResourceClaimSpec {\n static getAttributeTypeMap() {\n return V1beta2ResourceClaimSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2ResourceClaimSpec.discriminator = undefined;\nV1beta2ResourceClaimSpec.mapping = undefined;\nV1beta2ResourceClaimSpec.attributeTypeMap = [\n {\n \"name\": \"devices\",\n \"baseName\": \"devices\",\n \"type\": \"V1beta2DeviceClaim\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2ResourceClaimSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.\n*/\nexport class V1beta2ResourceClaimStatus {\n static getAttributeTypeMap() {\n return V1beta2ResourceClaimStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2ResourceClaimStatus.discriminator = undefined;\nV1beta2ResourceClaimStatus.mapping = undefined;\nV1beta2ResourceClaimStatus.attributeTypeMap = [\n {\n \"name\": \"allocation\",\n \"baseName\": \"allocation\",\n \"type\": \"V1beta2AllocationResult\",\n \"format\": \"\"\n },\n {\n \"name\": \"devices\",\n \"baseName\": \"devices\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"reservedFor\",\n \"baseName\": \"reservedFor\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2ResourceClaimStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimTemplate is used to produce ResourceClaim objects. This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\n*/\nexport class V1beta2ResourceClaimTemplate {\n static getAttributeTypeMap() {\n return V1beta2ResourceClaimTemplate.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2ResourceClaimTemplate.discriminator = undefined;\nV1beta2ResourceClaimTemplate.mapping = undefined;\nV1beta2ResourceClaimTemplate.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1beta2ResourceClaimTemplateSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2ResourceClaimTemplate.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimTemplateList is a collection of claim templates.\n*/\nexport class V1beta2ResourceClaimTemplateList {\n static getAttributeTypeMap() {\n return V1beta2ResourceClaimTemplateList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2ResourceClaimTemplateList.discriminator = undefined;\nV1beta2ResourceClaimTemplateList.mapping = undefined;\nV1beta2ResourceClaimTemplateList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2ResourceClaimTemplateList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.\n*/\nexport class V1beta2ResourceClaimTemplateSpec {\n static getAttributeTypeMap() {\n return V1beta2ResourceClaimTemplateSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2ResourceClaimTemplateSpec.discriminator = undefined;\nV1beta2ResourceClaimTemplateSpec.mapping = undefined;\nV1beta2ResourceClaimTemplateSpec.attributeTypeMap = [\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1beta2ResourceClaimSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2ResourceClaimTemplateSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourcePool describes the pool that ResourceSlices belong to.\n*/\nexport class V1beta2ResourcePool {\n static getAttributeTypeMap() {\n return V1beta2ResourcePool.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2ResourcePool.discriminator = undefined;\nV1beta2ResourcePool.mapping = undefined;\nV1beta2ResourcePool.attributeTypeMap = [\n {\n \"name\": \"generation\",\n \"baseName\": \"generation\",\n \"type\": \"number\",\n \"format\": \"int64\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"resourceSliceCount\",\n \"baseName\": \"resourceSliceCount\",\n \"type\": \"number\",\n \"format\": \"int64\"\n }\n];\n//# sourceMappingURL=V1beta2ResourcePool.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceSlice represents one or more resources in a pool of similar resources, managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many ResourceSlices comprise a pool is determined by the driver. At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple , , . Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others. When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool. For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available. This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\n*/\nexport class V1beta2ResourceSlice {\n static getAttributeTypeMap() {\n return V1beta2ResourceSlice.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2ResourceSlice.discriminator = undefined;\nV1beta2ResourceSlice.mapping = undefined;\nV1beta2ResourceSlice.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V1beta2ResourceSliceSpec\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2ResourceSlice.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceSliceList is a collection of ResourceSlices.\n*/\nexport class V1beta2ResourceSliceList {\n static getAttributeTypeMap() {\n return V1beta2ResourceSliceList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2ResourceSliceList.discriminator = undefined;\nV1beta2ResourceSliceList.mapping = undefined;\nV1beta2ResourceSliceList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2ResourceSliceList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceSliceSpec contains the information published by the driver in one ResourceSlice.\n*/\nexport class V1beta2ResourceSliceSpec {\n static getAttributeTypeMap() {\n return V1beta2ResourceSliceSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV1beta2ResourceSliceSpec.discriminator = undefined;\nV1beta2ResourceSliceSpec.mapping = undefined;\nV1beta2ResourceSliceSpec.attributeTypeMap = [\n {\n \"name\": \"allNodes\",\n \"baseName\": \"allNodes\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"devices\",\n \"baseName\": \"devices\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"driver\",\n \"baseName\": \"driver\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeName\",\n \"baseName\": \"nodeName\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"nodeSelector\",\n \"baseName\": \"nodeSelector\",\n \"type\": \"V1NodeSelector\",\n \"format\": \"\"\n },\n {\n \"name\": \"perDeviceNodeSelection\",\n \"baseName\": \"perDeviceNodeSelection\",\n \"type\": \"boolean\",\n \"format\": \"\"\n },\n {\n \"name\": \"pool\",\n \"baseName\": \"pool\",\n \"type\": \"V1beta2ResourcePool\",\n \"format\": \"\"\n },\n {\n \"name\": \"sharedCounters\",\n \"baseName\": \"sharedCounters\",\n \"type\": \"Array\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V1beta2ResourceSliceSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source. Only one \\\"target\\\" type should be set.\n*/\nexport class V2ContainerResourceMetricSource {\n static getAttributeTypeMap() {\n return V2ContainerResourceMetricSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2ContainerResourceMetricSource.discriminator = undefined;\nV2ContainerResourceMetricSource.mapping = undefined;\nV2ContainerResourceMetricSource.attributeTypeMap = [\n {\n \"name\": \"container\",\n \"baseName\": \"container\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"target\",\n \"baseName\": \"target\",\n \"type\": \"V2MetricTarget\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2ContainerResourceMetricSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\n*/\nexport class V2ContainerResourceMetricStatus {\n static getAttributeTypeMap() {\n return V2ContainerResourceMetricStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2ContainerResourceMetricStatus.discriminator = undefined;\nV2ContainerResourceMetricStatus.mapping = undefined;\nV2ContainerResourceMetricStatus.attributeTypeMap = [\n {\n \"name\": \"container\",\n \"baseName\": \"container\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"current\",\n \"baseName\": \"current\",\n \"type\": \"V2MetricValueStatus\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2ContainerResourceMetricStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* CrossVersionObjectReference contains enough information to let you identify the referred resource.\n*/\nexport class V2CrossVersionObjectReference {\n static getAttributeTypeMap() {\n return V2CrossVersionObjectReference.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2CrossVersionObjectReference.discriminator = undefined;\nV2CrossVersionObjectReference.mapping = undefined;\nV2CrossVersionObjectReference.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2CrossVersionObjectReference.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\n*/\nexport class V2ExternalMetricSource {\n static getAttributeTypeMap() {\n return V2ExternalMetricSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2ExternalMetricSource.discriminator = undefined;\nV2ExternalMetricSource.mapping = undefined;\nV2ExternalMetricSource.attributeTypeMap = [\n {\n \"name\": \"metric\",\n \"baseName\": \"metric\",\n \"type\": \"V2MetricIdentifier\",\n \"format\": \"\"\n },\n {\n \"name\": \"target\",\n \"baseName\": \"target\",\n \"type\": \"V2MetricTarget\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2ExternalMetricSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.\n*/\nexport class V2ExternalMetricStatus {\n static getAttributeTypeMap() {\n return V2ExternalMetricStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2ExternalMetricStatus.discriminator = undefined;\nV2ExternalMetricStatus.mapping = undefined;\nV2ExternalMetricStatus.attributeTypeMap = [\n {\n \"name\": \"current\",\n \"baseName\": \"current\",\n \"type\": \"V2MetricValueStatus\",\n \"format\": \"\"\n },\n {\n \"name\": \"metric\",\n \"baseName\": \"metric\",\n \"type\": \"V2MetricIdentifier\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2ExternalMetricStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* HPAScalingPolicy is a single policy which must hold true for a specified past interval.\n*/\nexport class V2HPAScalingPolicy {\n static getAttributeTypeMap() {\n return V2HPAScalingPolicy.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2HPAScalingPolicy.discriminator = undefined;\nV2HPAScalingPolicy.mapping = undefined;\nV2HPAScalingPolicy.attributeTypeMap = [\n {\n \"name\": \"periodSeconds\",\n \"baseName\": \"periodSeconds\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"number\",\n \"format\": \"int32\"\n }\n];\n//# sourceMappingURL=V2HPAScalingPolicy.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* HPAScalingRules configures the scaling behavior for one direction via scaling Policy Rules and a configurable metric tolerance. Scaling Policy Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen. The tolerance is applied to the metric values and prevents scaling too eagerly for small metric variations. (Note that setting a tolerance requires enabling the alpha HPAConfigurableTolerance feature gate.)\n*/\nexport class V2HPAScalingRules {\n static getAttributeTypeMap() {\n return V2HPAScalingRules.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2HPAScalingRules.discriminator = undefined;\nV2HPAScalingRules.mapping = undefined;\nV2HPAScalingRules.attributeTypeMap = [\n {\n \"name\": \"policies\",\n \"baseName\": \"policies\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"selectPolicy\",\n \"baseName\": \"selectPolicy\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"stabilizationWindowSeconds\",\n \"baseName\": \"stabilizationWindowSeconds\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"tolerance\",\n \"baseName\": \"tolerance\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2HPAScalingRules.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.\n*/\nexport class V2HorizontalPodAutoscaler {\n static getAttributeTypeMap() {\n return V2HorizontalPodAutoscaler.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2HorizontalPodAutoscaler.discriminator = undefined;\nV2HorizontalPodAutoscaler.mapping = undefined;\nV2HorizontalPodAutoscaler.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ObjectMeta\",\n \"format\": \"\"\n },\n {\n \"name\": \"spec\",\n \"baseName\": \"spec\",\n \"type\": \"V2HorizontalPodAutoscalerSpec\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"V2HorizontalPodAutoscalerStatus\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2HorizontalPodAutoscaler.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).\n*/\nexport class V2HorizontalPodAutoscalerBehavior {\n static getAttributeTypeMap() {\n return V2HorizontalPodAutoscalerBehavior.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2HorizontalPodAutoscalerBehavior.discriminator = undefined;\nV2HorizontalPodAutoscalerBehavior.mapping = undefined;\nV2HorizontalPodAutoscalerBehavior.attributeTypeMap = [\n {\n \"name\": \"scaleDown\",\n \"baseName\": \"scaleDown\",\n \"type\": \"V2HPAScalingRules\",\n \"format\": \"\"\n },\n {\n \"name\": \"scaleUp\",\n \"baseName\": \"scaleUp\",\n \"type\": \"V2HPAScalingRules\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2HorizontalPodAutoscalerBehavior.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.\n*/\nexport class V2HorizontalPodAutoscalerCondition {\n static getAttributeTypeMap() {\n return V2HorizontalPodAutoscalerCondition.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2HorizontalPodAutoscalerCondition.discriminator = undefined;\nV2HorizontalPodAutoscalerCondition.mapping = undefined;\nV2HorizontalPodAutoscalerCondition.attributeTypeMap = [\n {\n \"name\": \"lastTransitionTime\",\n \"baseName\": \"lastTransitionTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"message\",\n \"baseName\": \"message\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"reason\",\n \"baseName\": \"reason\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"status\",\n \"baseName\": \"status\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2HorizontalPodAutoscalerCondition.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.\n*/\nexport class V2HorizontalPodAutoscalerList {\n static getAttributeTypeMap() {\n return V2HorizontalPodAutoscalerList.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2HorizontalPodAutoscalerList.discriminator = undefined;\nV2HorizontalPodAutoscalerList.mapping = undefined;\nV2HorizontalPodAutoscalerList.attributeTypeMap = [\n {\n \"name\": \"apiVersion\",\n \"baseName\": \"apiVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"items\",\n \"baseName\": \"items\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"kind\",\n \"baseName\": \"kind\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"metadata\",\n \"baseName\": \"metadata\",\n \"type\": \"V1ListMeta\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2HorizontalPodAutoscalerList.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\n*/\nexport class V2HorizontalPodAutoscalerSpec {\n static getAttributeTypeMap() {\n return V2HorizontalPodAutoscalerSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2HorizontalPodAutoscalerSpec.discriminator = undefined;\nV2HorizontalPodAutoscalerSpec.mapping = undefined;\nV2HorizontalPodAutoscalerSpec.attributeTypeMap = [\n {\n \"name\": \"behavior\",\n \"baseName\": \"behavior\",\n \"type\": \"V2HorizontalPodAutoscalerBehavior\",\n \"format\": \"\"\n },\n {\n \"name\": \"maxReplicas\",\n \"baseName\": \"maxReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"metrics\",\n \"baseName\": \"metrics\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"minReplicas\",\n \"baseName\": \"minReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"scaleTargetRef\",\n \"baseName\": \"scaleTargetRef\",\n \"type\": \"V2CrossVersionObjectReference\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2HorizontalPodAutoscalerSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\n*/\nexport class V2HorizontalPodAutoscalerStatus {\n static getAttributeTypeMap() {\n return V2HorizontalPodAutoscalerStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2HorizontalPodAutoscalerStatus.discriminator = undefined;\nV2HorizontalPodAutoscalerStatus.mapping = undefined;\nV2HorizontalPodAutoscalerStatus.attributeTypeMap = [\n {\n \"name\": \"conditions\",\n \"baseName\": \"conditions\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"currentMetrics\",\n \"baseName\": \"currentMetrics\",\n \"type\": \"Array\",\n \"format\": \"\"\n },\n {\n \"name\": \"currentReplicas\",\n \"baseName\": \"currentReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"desiredReplicas\",\n \"baseName\": \"desiredReplicas\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"lastScaleTime\",\n \"baseName\": \"lastScaleTime\",\n \"type\": \"Date\",\n \"format\": \"date-time\"\n },\n {\n \"name\": \"observedGeneration\",\n \"baseName\": \"observedGeneration\",\n \"type\": \"number\",\n \"format\": \"int64\"\n }\n];\n//# sourceMappingURL=V2HorizontalPodAutoscalerStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MetricIdentifier defines the name and optionally selector for a metric\n*/\nexport class V2MetricIdentifier {\n static getAttributeTypeMap() {\n return V2MetricIdentifier.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2MetricIdentifier.discriminator = undefined;\nV2MetricIdentifier.mapping = undefined;\nV2MetricIdentifier.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"selector\",\n \"baseName\": \"selector\",\n \"type\": \"V1LabelSelector\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2MetricIdentifier.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).\n*/\nexport class V2MetricSpec {\n static getAttributeTypeMap() {\n return V2MetricSpec.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2MetricSpec.discriminator = undefined;\nV2MetricSpec.mapping = undefined;\nV2MetricSpec.attributeTypeMap = [\n {\n \"name\": \"containerResource\",\n \"baseName\": \"containerResource\",\n \"type\": \"V2ContainerResourceMetricSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"external\",\n \"baseName\": \"external\",\n \"type\": \"V2ExternalMetricSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"object\",\n \"baseName\": \"object\",\n \"type\": \"V2ObjectMetricSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"pods\",\n \"baseName\": \"pods\",\n \"type\": \"V2PodsMetricSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"resource\",\n \"baseName\": \"resource\",\n \"type\": \"V2ResourceMetricSource\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2MetricSpec.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MetricStatus describes the last-read state of a single metric.\n*/\nexport class V2MetricStatus {\n static getAttributeTypeMap() {\n return V2MetricStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2MetricStatus.discriminator = undefined;\nV2MetricStatus.mapping = undefined;\nV2MetricStatus.attributeTypeMap = [\n {\n \"name\": \"containerResource\",\n \"baseName\": \"containerResource\",\n \"type\": \"V2ContainerResourceMetricStatus\",\n \"format\": \"\"\n },\n {\n \"name\": \"external\",\n \"baseName\": \"external\",\n \"type\": \"V2ExternalMetricStatus\",\n \"format\": \"\"\n },\n {\n \"name\": \"object\",\n \"baseName\": \"object\",\n \"type\": \"V2ObjectMetricStatus\",\n \"format\": \"\"\n },\n {\n \"name\": \"pods\",\n \"baseName\": \"pods\",\n \"type\": \"V2PodsMetricStatus\",\n \"format\": \"\"\n },\n {\n \"name\": \"resource\",\n \"baseName\": \"resource\",\n \"type\": \"V2ResourceMetricStatus\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2MetricStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MetricTarget defines the target value, average value, or average utilization of a specific metric\n*/\nexport class V2MetricTarget {\n static getAttributeTypeMap() {\n return V2MetricTarget.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2MetricTarget.discriminator = undefined;\nV2MetricTarget.mapping = undefined;\nV2MetricTarget.attributeTypeMap = [\n {\n \"name\": \"averageUtilization\",\n \"baseName\": \"averageUtilization\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"averageValue\",\n \"baseName\": \"averageValue\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"type\",\n \"baseName\": \"type\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2MetricTarget.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* MetricValueStatus holds the current value for a metric\n*/\nexport class V2MetricValueStatus {\n static getAttributeTypeMap() {\n return V2MetricValueStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2MetricValueStatus.discriminator = undefined;\nV2MetricValueStatus.mapping = undefined;\nV2MetricValueStatus.attributeTypeMap = [\n {\n \"name\": \"averageUtilization\",\n \"baseName\": \"averageUtilization\",\n \"type\": \"number\",\n \"format\": \"int32\"\n },\n {\n \"name\": \"averageValue\",\n \"baseName\": \"averageValue\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"value\",\n \"baseName\": \"value\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2MetricValueStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\n*/\nexport class V2ObjectMetricSource {\n static getAttributeTypeMap() {\n return V2ObjectMetricSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2ObjectMetricSource.discriminator = undefined;\nV2ObjectMetricSource.mapping = undefined;\nV2ObjectMetricSource.attributeTypeMap = [\n {\n \"name\": \"describedObject\",\n \"baseName\": \"describedObject\",\n \"type\": \"V2CrossVersionObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"metric\",\n \"baseName\": \"metric\",\n \"type\": \"V2MetricIdentifier\",\n \"format\": \"\"\n },\n {\n \"name\": \"target\",\n \"baseName\": \"target\",\n \"type\": \"V2MetricTarget\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2ObjectMetricSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\n*/\nexport class V2ObjectMetricStatus {\n static getAttributeTypeMap() {\n return V2ObjectMetricStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2ObjectMetricStatus.discriminator = undefined;\nV2ObjectMetricStatus.mapping = undefined;\nV2ObjectMetricStatus.attributeTypeMap = [\n {\n \"name\": \"current\",\n \"baseName\": \"current\",\n \"type\": \"V2MetricValueStatus\",\n \"format\": \"\"\n },\n {\n \"name\": \"describedObject\",\n \"baseName\": \"describedObject\",\n \"type\": \"V2CrossVersionObjectReference\",\n \"format\": \"\"\n },\n {\n \"name\": \"metric\",\n \"baseName\": \"metric\",\n \"type\": \"V2MetricIdentifier\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2ObjectMetricStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.\n*/\nexport class V2PodsMetricSource {\n static getAttributeTypeMap() {\n return V2PodsMetricSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2PodsMetricSource.discriminator = undefined;\nV2PodsMetricSource.mapping = undefined;\nV2PodsMetricSource.attributeTypeMap = [\n {\n \"name\": \"metric\",\n \"baseName\": \"metric\",\n \"type\": \"V2MetricIdentifier\",\n \"format\": \"\"\n },\n {\n \"name\": \"target\",\n \"baseName\": \"target\",\n \"type\": \"V2MetricTarget\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2PodsMetricSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).\n*/\nexport class V2PodsMetricStatus {\n static getAttributeTypeMap() {\n return V2PodsMetricStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2PodsMetricStatus.discriminator = undefined;\nV2PodsMetricStatus.mapping = undefined;\nV2PodsMetricStatus.attributeTypeMap = [\n {\n \"name\": \"current\",\n \"baseName\": \"current\",\n \"type\": \"V2MetricValueStatus\",\n \"format\": \"\"\n },\n {\n \"name\": \"metric\",\n \"baseName\": \"metric\",\n \"type\": \"V2MetricIdentifier\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2PodsMetricStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source. Only one \\\"target\\\" type should be set.\n*/\nexport class V2ResourceMetricSource {\n static getAttributeTypeMap() {\n return V2ResourceMetricSource.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2ResourceMetricSource.discriminator = undefined;\nV2ResourceMetricSource.mapping = undefined;\nV2ResourceMetricSource.attributeTypeMap = [\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"target\",\n \"baseName\": \"target\",\n \"type\": \"V2MetricTarget\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2ResourceMetricSource.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\n*/\nexport class V2ResourceMetricStatus {\n static getAttributeTypeMap() {\n return V2ResourceMetricStatus.attributeTypeMap;\n }\n constructor() {\n }\n}\nV2ResourceMetricStatus.discriminator = undefined;\nV2ResourceMetricStatus.mapping = undefined;\nV2ResourceMetricStatus.attributeTypeMap = [\n {\n \"name\": \"current\",\n \"baseName\": \"current\",\n \"type\": \"V2MetricValueStatus\",\n \"format\": \"\"\n },\n {\n \"name\": \"name\",\n \"baseName\": \"name\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=V2ResourceMetricStatus.js.map","/**\n * Kubernetes\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * OpenAPI spec version: v1.33.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/**\n* Info contains versioning information. how we\\'ll want to distribute that information.\n*/\nexport class VersionInfo {\n static getAttributeTypeMap() {\n return VersionInfo.attributeTypeMap;\n }\n constructor() {\n }\n}\nVersionInfo.discriminator = undefined;\nVersionInfo.mapping = undefined;\nVersionInfo.attributeTypeMap = [\n {\n \"name\": \"buildDate\",\n \"baseName\": \"buildDate\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"compiler\",\n \"baseName\": \"compiler\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"emulationMajor\",\n \"baseName\": \"emulationMajor\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"emulationMinor\",\n \"baseName\": \"emulationMinor\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"gitCommit\",\n \"baseName\": \"gitCommit\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"gitTreeState\",\n \"baseName\": \"gitTreeState\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"gitVersion\",\n \"baseName\": \"gitVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"goVersion\",\n \"baseName\": \"goVersion\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"major\",\n \"baseName\": \"major\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"minCompatibilityMajor\",\n \"baseName\": \"minCompatibilityMajor\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"minCompatibilityMinor\",\n \"baseName\": \"minCompatibilityMinor\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"minor\",\n \"baseName\": \"minor\",\n \"type\": \"string\",\n \"format\": \"\"\n },\n {\n \"name\": \"platform\",\n \"baseName\": \"platform\",\n \"type\": \"string\",\n \"format\": \"\"\n }\n];\n//# sourceMappingURL=VersionInfo.js.map","import { from } from './rxjsStub.js';\nexport class PromiseMiddlewareWrapper {\n constructor(middleware) {\n this.middleware = middleware;\n }\n pre(context) {\n return from(this.middleware.pre(context));\n }\n post(context) {\n return from(this.middleware.post(context));\n }\n}\n//# sourceMappingURL=middleware.js.map","import { RequestContext } from \"./http/http.js\";\n/**\n *\n * Represents the configuration of a server including its\n * url template and variable configuration based on the url.\n *\n */\nexport class ServerConfiguration {\n constructor(url, variableConfiguration) {\n this.url = url;\n this.variableConfiguration = variableConfiguration;\n }\n /**\n * Sets the value of the variables of this server. Variables are included in\n * the `url` of this ServerConfiguration in the form `{variableName}`\n *\n * @param variableConfiguration a partial variable configuration for the\n * variables contained in the url\n */\n setVariables(variableConfiguration) {\n Object.assign(this.variableConfiguration, variableConfiguration);\n }\n getConfiguration() {\n return this.variableConfiguration;\n }\n getUrl() {\n let replacedUrl = this.url;\n for (const [key, value] of Object.entries(this.variableConfiguration)) {\n replacedUrl = replacedUrl.replaceAll(`{${key}}`, value);\n }\n return replacedUrl;\n }\n /**\n * Creates a new request context for this server using the url with variables\n * replaced with their respective values and the endpoint of the request appended.\n *\n * @param endpoint the endpoint to be queried on the server\n * @param httpMethod httpMethod to be used\n *\n */\n makeRequestContext(endpoint, httpMethod) {\n return new RequestContext(this.getUrl() + endpoint, httpMethod);\n }\n}\nexport const server1 = new ServerConfiguration(\"\", {});\nexport const servers = [server1];\n//# sourceMappingURL=servers.js.map","import { PromiseMiddlewareWrapper } from \"./middleware.js\";\nimport { IsomorphicFetchHttpLibrary as DefaultHttpLibrary } from \"./http/isomorphic-fetch.js\";\nimport { server1 } from \"./servers.js\";\nimport { configureAuthMethods } from \"./auth/auth.js\";\n/**\n * Provide your `ConfigurationParameters` to this function to get a `Configuration`\n * object that can be used to configure your APIs (in the constructor or\n * for each request individually).\n *\n * If a property is not included in conf, a default is used:\n * - baseServer: server1\n * - httpApi: IsomorphicFetchHttpLibrary\n * - middleware: []\n * - promiseMiddleware: []\n * - authMethods: {}\n *\n * @param conf partial configuration\n */\nexport function createConfiguration(conf = {}) {\n const configuration = {\n baseServer: conf.baseServer !== undefined ? conf.baseServer : server1,\n httpApi: conf.httpApi || new DefaultHttpLibrary(),\n middleware: conf.middleware || [],\n authMethods: configureAuthMethods(conf.authMethods)\n };\n if (conf.promiseMiddleware) {\n conf.promiseMiddleware.forEach(m => configuration.middleware.push(new PromiseMiddlewareWrapper(m)));\n }\n return configuration;\n}\n//# sourceMappingURL=configuration.js.map","/**\n * Represents an error caused by an api call i.e. it has attributes for a HTTP status code\n * and the returned body object.\n *\n * Example\n * API returns a ErrorMessageObject whenever HTTP status code is not in [200, 299]\n * => ApiException(404, someErrorMessageObject)\n *\n */\nexport class ApiException extends Error {\n constructor(code, message, body, headers) {\n super(\"HTTP-Code: \" + code + \"\\nMessage: \" + message + \"\\nBody: \" + JSON.stringify(body) + \"\\nHeaders: \" +\n JSON.stringify(headers));\n this.code = code;\n this.body = body;\n this.headers = headers;\n }\n}\n//# sourceMappingURL=exception.js.map","/**\n *\n * @export\n */\nexport const COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n/**\n *\n * @export\n * @class BaseAPI\n */\nexport class BaseAPIRequestFactory {\n constructor(configuration) {\n this.configuration = configuration;\n }\n}\n;\n/**\n *\n * @export\n * @class RequiredError\n * @extends {Error}\n */\nexport class RequiredError extends Error {\n constructor(api, method, field) {\n super(\"Required parameter \" + field + \" was null or undefined when calling \" + api + \".\" + method + \".\");\n this.api = api;\n this.method = method;\n this.field = field;\n this.name = \"RequiredError\";\n }\n}\n//# sourceMappingURL=baseapi.js.map","export * from '../models/AdmissionregistrationV1ServiceReference.js';\nexport * from '../models/AdmissionregistrationV1WebhookClientConfig.js';\nexport * from '../models/ApiextensionsV1ServiceReference.js';\nexport * from '../models/ApiextensionsV1WebhookClientConfig.js';\nexport * from '../models/ApiregistrationV1ServiceReference.js';\nexport * from '../models/AuthenticationV1TokenRequest.js';\nexport * from '../models/CoreV1EndpointPort.js';\nexport * from '../models/CoreV1Event.js';\nexport * from '../models/CoreV1EventList.js';\nexport * from '../models/CoreV1EventSeries.js';\nexport * from '../models/DiscoveryV1EndpointPort.js';\nexport * from '../models/EventsV1Event.js';\nexport * from '../models/EventsV1EventList.js';\nexport * from '../models/EventsV1EventSeries.js';\nexport * from '../models/FlowcontrolV1Subject.js';\nexport * from '../models/RbacV1Subject.js';\nexport * from '../models/StorageV1TokenRequest.js';\nexport * from '../models/V1APIGroup.js';\nexport * from '../models/V1APIGroupList.js';\nexport * from '../models/V1APIResource.js';\nexport * from '../models/V1APIResourceList.js';\nexport * from '../models/V1APIService.js';\nexport * from '../models/V1APIServiceCondition.js';\nexport * from '../models/V1APIServiceList.js';\nexport * from '../models/V1APIServiceSpec.js';\nexport * from '../models/V1APIServiceStatus.js';\nexport * from '../models/V1APIVersions.js';\nexport * from '../models/V1AWSElasticBlockStoreVolumeSource.js';\nexport * from '../models/V1Affinity.js';\nexport * from '../models/V1AggregationRule.js';\nexport * from '../models/V1AppArmorProfile.js';\nexport * from '../models/V1AttachedVolume.js';\nexport * from '../models/V1AuditAnnotation.js';\nexport * from '../models/V1AzureDiskVolumeSource.js';\nexport * from '../models/V1AzureFilePersistentVolumeSource.js';\nexport * from '../models/V1AzureFileVolumeSource.js';\nexport * from '../models/V1Binding.js';\nexport * from '../models/V1BoundObjectReference.js';\nexport * from '../models/V1CSIDriver.js';\nexport * from '../models/V1CSIDriverList.js';\nexport * from '../models/V1CSIDriverSpec.js';\nexport * from '../models/V1CSINode.js';\nexport * from '../models/V1CSINodeDriver.js';\nexport * from '../models/V1CSINodeList.js';\nexport * from '../models/V1CSINodeSpec.js';\nexport * from '../models/V1CSIPersistentVolumeSource.js';\nexport * from '../models/V1CSIStorageCapacity.js';\nexport * from '../models/V1CSIStorageCapacityList.js';\nexport * from '../models/V1CSIVolumeSource.js';\nexport * from '../models/V1Capabilities.js';\nexport * from '../models/V1CephFSPersistentVolumeSource.js';\nexport * from '../models/V1CephFSVolumeSource.js';\nexport * from '../models/V1CertificateSigningRequest.js';\nexport * from '../models/V1CertificateSigningRequestCondition.js';\nexport * from '../models/V1CertificateSigningRequestList.js';\nexport * from '../models/V1CertificateSigningRequestSpec.js';\nexport * from '../models/V1CertificateSigningRequestStatus.js';\nexport * from '../models/V1CinderPersistentVolumeSource.js';\nexport * from '../models/V1CinderVolumeSource.js';\nexport * from '../models/V1ClientIPConfig.js';\nexport * from '../models/V1ClusterRole.js';\nexport * from '../models/V1ClusterRoleBinding.js';\nexport * from '../models/V1ClusterRoleBindingList.js';\nexport * from '../models/V1ClusterRoleList.js';\nexport * from '../models/V1ClusterTrustBundleProjection.js';\nexport * from '../models/V1ComponentCondition.js';\nexport * from '../models/V1ComponentStatus.js';\nexport * from '../models/V1ComponentStatusList.js';\nexport * from '../models/V1Condition.js';\nexport * from '../models/V1ConfigMap.js';\nexport * from '../models/V1ConfigMapEnvSource.js';\nexport * from '../models/V1ConfigMapKeySelector.js';\nexport * from '../models/V1ConfigMapList.js';\nexport * from '../models/V1ConfigMapNodeConfigSource.js';\nexport * from '../models/V1ConfigMapProjection.js';\nexport * from '../models/V1ConfigMapVolumeSource.js';\nexport * from '../models/V1Container.js';\nexport * from '../models/V1ContainerImage.js';\nexport * from '../models/V1ContainerPort.js';\nexport * from '../models/V1ContainerResizePolicy.js';\nexport * from '../models/V1ContainerState.js';\nexport * from '../models/V1ContainerStateRunning.js';\nexport * from '../models/V1ContainerStateTerminated.js';\nexport * from '../models/V1ContainerStateWaiting.js';\nexport * from '../models/V1ContainerStatus.js';\nexport * from '../models/V1ContainerUser.js';\nexport * from '../models/V1ControllerRevision.js';\nexport * from '../models/V1ControllerRevisionList.js';\nexport * from '../models/V1CronJob.js';\nexport * from '../models/V1CronJobList.js';\nexport * from '../models/V1CronJobSpec.js';\nexport * from '../models/V1CronJobStatus.js';\nexport * from '../models/V1CrossVersionObjectReference.js';\nexport * from '../models/V1CustomResourceColumnDefinition.js';\nexport * from '../models/V1CustomResourceConversion.js';\nexport * from '../models/V1CustomResourceDefinition.js';\nexport * from '../models/V1CustomResourceDefinitionCondition.js';\nexport * from '../models/V1CustomResourceDefinitionList.js';\nexport * from '../models/V1CustomResourceDefinitionNames.js';\nexport * from '../models/V1CustomResourceDefinitionSpec.js';\nexport * from '../models/V1CustomResourceDefinitionStatus.js';\nexport * from '../models/V1CustomResourceDefinitionVersion.js';\nexport * from '../models/V1CustomResourceSubresourceScale.js';\nexport * from '../models/V1CustomResourceSubresources.js';\nexport * from '../models/V1CustomResourceValidation.js';\nexport * from '../models/V1DaemonEndpoint.js';\nexport * from '../models/V1DaemonSet.js';\nexport * from '../models/V1DaemonSetCondition.js';\nexport * from '../models/V1DaemonSetList.js';\nexport * from '../models/V1DaemonSetSpec.js';\nexport * from '../models/V1DaemonSetStatus.js';\nexport * from '../models/V1DaemonSetUpdateStrategy.js';\nexport * from '../models/V1DeleteOptions.js';\nexport * from '../models/V1Deployment.js';\nexport * from '../models/V1DeploymentCondition.js';\nexport * from '../models/V1DeploymentList.js';\nexport * from '../models/V1DeploymentSpec.js';\nexport * from '../models/V1DeploymentStatus.js';\nexport * from '../models/V1DeploymentStrategy.js';\nexport * from '../models/V1DownwardAPIProjection.js';\nexport * from '../models/V1DownwardAPIVolumeFile.js';\nexport * from '../models/V1DownwardAPIVolumeSource.js';\nexport * from '../models/V1EmptyDirVolumeSource.js';\nexport * from '../models/V1Endpoint.js';\nexport * from '../models/V1EndpointAddress.js';\nexport * from '../models/V1EndpointConditions.js';\nexport * from '../models/V1EndpointHints.js';\nexport * from '../models/V1EndpointSlice.js';\nexport * from '../models/V1EndpointSliceList.js';\nexport * from '../models/V1EndpointSubset.js';\nexport * from '../models/V1Endpoints.js';\nexport * from '../models/V1EndpointsList.js';\nexport * from '../models/V1EnvFromSource.js';\nexport * from '../models/V1EnvVar.js';\nexport * from '../models/V1EnvVarSource.js';\nexport * from '../models/V1EphemeralContainer.js';\nexport * from '../models/V1EphemeralVolumeSource.js';\nexport * from '../models/V1EventSource.js';\nexport * from '../models/V1Eviction.js';\nexport * from '../models/V1ExecAction.js';\nexport * from '../models/V1ExemptPriorityLevelConfiguration.js';\nexport * from '../models/V1ExpressionWarning.js';\nexport * from '../models/V1ExternalDocumentation.js';\nexport * from '../models/V1FCVolumeSource.js';\nexport * from '../models/V1FieldSelectorAttributes.js';\nexport * from '../models/V1FieldSelectorRequirement.js';\nexport * from '../models/V1FlexPersistentVolumeSource.js';\nexport * from '../models/V1FlexVolumeSource.js';\nexport * from '../models/V1FlockerVolumeSource.js';\nexport * from '../models/V1FlowDistinguisherMethod.js';\nexport * from '../models/V1FlowSchema.js';\nexport * from '../models/V1FlowSchemaCondition.js';\nexport * from '../models/V1FlowSchemaList.js';\nexport * from '../models/V1FlowSchemaSpec.js';\nexport * from '../models/V1FlowSchemaStatus.js';\nexport * from '../models/V1ForNode.js';\nexport * from '../models/V1ForZone.js';\nexport * from '../models/V1GCEPersistentDiskVolumeSource.js';\nexport * from '../models/V1GRPCAction.js';\nexport * from '../models/V1GitRepoVolumeSource.js';\nexport * from '../models/V1GlusterfsPersistentVolumeSource.js';\nexport * from '../models/V1GlusterfsVolumeSource.js';\nexport * from '../models/V1GroupSubject.js';\nexport * from '../models/V1GroupVersionForDiscovery.js';\nexport * from '../models/V1HTTPGetAction.js';\nexport * from '../models/V1HTTPHeader.js';\nexport * from '../models/V1HTTPIngressPath.js';\nexport * from '../models/V1HTTPIngressRuleValue.js';\nexport * from '../models/V1HorizontalPodAutoscaler.js';\nexport * from '../models/V1HorizontalPodAutoscalerList.js';\nexport * from '../models/V1HorizontalPodAutoscalerSpec.js';\nexport * from '../models/V1HorizontalPodAutoscalerStatus.js';\nexport * from '../models/V1HostAlias.js';\nexport * from '../models/V1HostIP.js';\nexport * from '../models/V1HostPathVolumeSource.js';\nexport * from '../models/V1IPAddress.js';\nexport * from '../models/V1IPAddressList.js';\nexport * from '../models/V1IPAddressSpec.js';\nexport * from '../models/V1IPBlock.js';\nexport * from '../models/V1ISCSIPersistentVolumeSource.js';\nexport * from '../models/V1ISCSIVolumeSource.js';\nexport * from '../models/V1ImageVolumeSource.js';\nexport * from '../models/V1Ingress.js';\nexport * from '../models/V1IngressBackend.js';\nexport * from '../models/V1IngressClass.js';\nexport * from '../models/V1IngressClassList.js';\nexport * from '../models/V1IngressClassParametersReference.js';\nexport * from '../models/V1IngressClassSpec.js';\nexport * from '../models/V1IngressList.js';\nexport * from '../models/V1IngressLoadBalancerIngress.js';\nexport * from '../models/V1IngressLoadBalancerStatus.js';\nexport * from '../models/V1IngressPortStatus.js';\nexport * from '../models/V1IngressRule.js';\nexport * from '../models/V1IngressServiceBackend.js';\nexport * from '../models/V1IngressSpec.js';\nexport * from '../models/V1IngressStatus.js';\nexport * from '../models/V1IngressTLS.js';\nexport * from '../models/V1JSONSchemaProps.js';\nexport * from '../models/V1Job.js';\nexport * from '../models/V1JobCondition.js';\nexport * from '../models/V1JobList.js';\nexport * from '../models/V1JobSpec.js';\nexport * from '../models/V1JobStatus.js';\nexport * from '../models/V1JobTemplateSpec.js';\nexport * from '../models/V1KeyToPath.js';\nexport * from '../models/V1LabelSelector.js';\nexport * from '../models/V1LabelSelectorAttributes.js';\nexport * from '../models/V1LabelSelectorRequirement.js';\nexport * from '../models/V1Lease.js';\nexport * from '../models/V1LeaseList.js';\nexport * from '../models/V1LeaseSpec.js';\nexport * from '../models/V1Lifecycle.js';\nexport * from '../models/V1LifecycleHandler.js';\nexport * from '../models/V1LimitRange.js';\nexport * from '../models/V1LimitRangeItem.js';\nexport * from '../models/V1LimitRangeList.js';\nexport * from '../models/V1LimitRangeSpec.js';\nexport * from '../models/V1LimitResponse.js';\nexport * from '../models/V1LimitedPriorityLevelConfiguration.js';\nexport * from '../models/V1LinuxContainerUser.js';\nexport * from '../models/V1ListMeta.js';\nexport * from '../models/V1LoadBalancerIngress.js';\nexport * from '../models/V1LoadBalancerStatus.js';\nexport * from '../models/V1LocalObjectReference.js';\nexport * from '../models/V1LocalSubjectAccessReview.js';\nexport * from '../models/V1LocalVolumeSource.js';\nexport * from '../models/V1ManagedFieldsEntry.js';\nexport * from '../models/V1MatchCondition.js';\nexport * from '../models/V1MatchResources.js';\nexport * from '../models/V1ModifyVolumeStatus.js';\nexport * from '../models/V1MutatingWebhook.js';\nexport * from '../models/V1MutatingWebhookConfiguration.js';\nexport * from '../models/V1MutatingWebhookConfigurationList.js';\nexport * from '../models/V1NFSVolumeSource.js';\nexport * from '../models/V1NamedRuleWithOperations.js';\nexport * from '../models/V1Namespace.js';\nexport * from '../models/V1NamespaceCondition.js';\nexport * from '../models/V1NamespaceList.js';\nexport * from '../models/V1NamespaceSpec.js';\nexport * from '../models/V1NamespaceStatus.js';\nexport * from '../models/V1NetworkPolicy.js';\nexport * from '../models/V1NetworkPolicyEgressRule.js';\nexport * from '../models/V1NetworkPolicyIngressRule.js';\nexport * from '../models/V1NetworkPolicyList.js';\nexport * from '../models/V1NetworkPolicyPeer.js';\nexport * from '../models/V1NetworkPolicyPort.js';\nexport * from '../models/V1NetworkPolicySpec.js';\nexport * from '../models/V1Node.js';\nexport * from '../models/V1NodeAddress.js';\nexport * from '../models/V1NodeAffinity.js';\nexport * from '../models/V1NodeCondition.js';\nexport * from '../models/V1NodeConfigSource.js';\nexport * from '../models/V1NodeConfigStatus.js';\nexport * from '../models/V1NodeDaemonEndpoints.js';\nexport * from '../models/V1NodeFeatures.js';\nexport * from '../models/V1NodeList.js';\nexport * from '../models/V1NodeRuntimeHandler.js';\nexport * from '../models/V1NodeRuntimeHandlerFeatures.js';\nexport * from '../models/V1NodeSelector.js';\nexport * from '../models/V1NodeSelectorRequirement.js';\nexport * from '../models/V1NodeSelectorTerm.js';\nexport * from '../models/V1NodeSpec.js';\nexport * from '../models/V1NodeStatus.js';\nexport * from '../models/V1NodeSwapStatus.js';\nexport * from '../models/V1NodeSystemInfo.js';\nexport * from '../models/V1NonResourceAttributes.js';\nexport * from '../models/V1NonResourcePolicyRule.js';\nexport * from '../models/V1NonResourceRule.js';\nexport * from '../models/V1ObjectFieldSelector.js';\nexport * from '../models/V1ObjectMeta.js';\nexport * from '../models/V1ObjectReference.js';\nexport * from '../models/V1Overhead.js';\nexport * from '../models/V1OwnerReference.js';\nexport * from '../models/V1ParamKind.js';\nexport * from '../models/V1ParamRef.js';\nexport * from '../models/V1ParentReference.js';\nexport * from '../models/V1PersistentVolume.js';\nexport * from '../models/V1PersistentVolumeClaim.js';\nexport * from '../models/V1PersistentVolumeClaimCondition.js';\nexport * from '../models/V1PersistentVolumeClaimList.js';\nexport * from '../models/V1PersistentVolumeClaimSpec.js';\nexport * from '../models/V1PersistentVolumeClaimStatus.js';\nexport * from '../models/V1PersistentVolumeClaimTemplate.js';\nexport * from '../models/V1PersistentVolumeClaimVolumeSource.js';\nexport * from '../models/V1PersistentVolumeList.js';\nexport * from '../models/V1PersistentVolumeSpec.js';\nexport * from '../models/V1PersistentVolumeStatus.js';\nexport * from '../models/V1PhotonPersistentDiskVolumeSource.js';\nexport * from '../models/V1Pod.js';\nexport * from '../models/V1PodAffinity.js';\nexport * from '../models/V1PodAffinityTerm.js';\nexport * from '../models/V1PodAntiAffinity.js';\nexport * from '../models/V1PodCondition.js';\nexport * from '../models/V1PodDNSConfig.js';\nexport * from '../models/V1PodDNSConfigOption.js';\nexport * from '../models/V1PodDisruptionBudget.js';\nexport * from '../models/V1PodDisruptionBudgetList.js';\nexport * from '../models/V1PodDisruptionBudgetSpec.js';\nexport * from '../models/V1PodDisruptionBudgetStatus.js';\nexport * from '../models/V1PodFailurePolicy.js';\nexport * from '../models/V1PodFailurePolicyOnExitCodesRequirement.js';\nexport * from '../models/V1PodFailurePolicyOnPodConditionsPattern.js';\nexport * from '../models/V1PodFailurePolicyRule.js';\nexport * from '../models/V1PodIP.js';\nexport * from '../models/V1PodList.js';\nexport * from '../models/V1PodOS.js';\nexport * from '../models/V1PodReadinessGate.js';\nexport * from '../models/V1PodResourceClaim.js';\nexport * from '../models/V1PodResourceClaimStatus.js';\nexport * from '../models/V1PodSchedulingGate.js';\nexport * from '../models/V1PodSecurityContext.js';\nexport * from '../models/V1PodSpec.js';\nexport * from '../models/V1PodStatus.js';\nexport * from '../models/V1PodTemplate.js';\nexport * from '../models/V1PodTemplateList.js';\nexport * from '../models/V1PodTemplateSpec.js';\nexport * from '../models/V1PolicyRule.js';\nexport * from '../models/V1PolicyRulesWithSubjects.js';\nexport * from '../models/V1PortStatus.js';\nexport * from '../models/V1PortworxVolumeSource.js';\nexport * from '../models/V1Preconditions.js';\nexport * from '../models/V1PreferredSchedulingTerm.js';\nexport * from '../models/V1PriorityClass.js';\nexport * from '../models/V1PriorityClassList.js';\nexport * from '../models/V1PriorityLevelConfiguration.js';\nexport * from '../models/V1PriorityLevelConfigurationCondition.js';\nexport * from '../models/V1PriorityLevelConfigurationList.js';\nexport * from '../models/V1PriorityLevelConfigurationReference.js';\nexport * from '../models/V1PriorityLevelConfigurationSpec.js';\nexport * from '../models/V1PriorityLevelConfigurationStatus.js';\nexport * from '../models/V1Probe.js';\nexport * from '../models/V1ProjectedVolumeSource.js';\nexport * from '../models/V1QueuingConfiguration.js';\nexport * from '../models/V1QuobyteVolumeSource.js';\nexport * from '../models/V1RBDPersistentVolumeSource.js';\nexport * from '../models/V1RBDVolumeSource.js';\nexport * from '../models/V1ReplicaSet.js';\nexport * from '../models/V1ReplicaSetCondition.js';\nexport * from '../models/V1ReplicaSetList.js';\nexport * from '../models/V1ReplicaSetSpec.js';\nexport * from '../models/V1ReplicaSetStatus.js';\nexport * from '../models/V1ReplicationController.js';\nexport * from '../models/V1ReplicationControllerCondition.js';\nexport * from '../models/V1ReplicationControllerList.js';\nexport * from '../models/V1ReplicationControllerSpec.js';\nexport * from '../models/V1ReplicationControllerStatus.js';\nexport * from '../models/V1ResourceAttributes.js';\nexport * from '../models/V1ResourceClaim.js';\nexport * from '../models/V1ResourceFieldSelector.js';\nexport * from '../models/V1ResourceHealth.js';\nexport * from '../models/V1ResourcePolicyRule.js';\nexport * from '../models/V1ResourceQuota.js';\nexport * from '../models/V1ResourceQuotaList.js';\nexport * from '../models/V1ResourceQuotaSpec.js';\nexport * from '../models/V1ResourceQuotaStatus.js';\nexport * from '../models/V1ResourceRequirements.js';\nexport * from '../models/V1ResourceRule.js';\nexport * from '../models/V1ResourceStatus.js';\nexport * from '../models/V1Role.js';\nexport * from '../models/V1RoleBinding.js';\nexport * from '../models/V1RoleBindingList.js';\nexport * from '../models/V1RoleList.js';\nexport * from '../models/V1RoleRef.js';\nexport * from '../models/V1RollingUpdateDaemonSet.js';\nexport * from '../models/V1RollingUpdateDeployment.js';\nexport * from '../models/V1RollingUpdateStatefulSetStrategy.js';\nexport * from '../models/V1RuleWithOperations.js';\nexport * from '../models/V1RuntimeClass.js';\nexport * from '../models/V1RuntimeClassList.js';\nexport * from '../models/V1SELinuxOptions.js';\nexport * from '../models/V1Scale.js';\nexport * from '../models/V1ScaleIOPersistentVolumeSource.js';\nexport * from '../models/V1ScaleIOVolumeSource.js';\nexport * from '../models/V1ScaleSpec.js';\nexport * from '../models/V1ScaleStatus.js';\nexport * from '../models/V1Scheduling.js';\nexport * from '../models/V1ScopeSelector.js';\nexport * from '../models/V1ScopedResourceSelectorRequirement.js';\nexport * from '../models/V1SeccompProfile.js';\nexport * from '../models/V1Secret.js';\nexport * from '../models/V1SecretEnvSource.js';\nexport * from '../models/V1SecretKeySelector.js';\nexport * from '../models/V1SecretList.js';\nexport * from '../models/V1SecretProjection.js';\nexport * from '../models/V1SecretReference.js';\nexport * from '../models/V1SecretVolumeSource.js';\nexport * from '../models/V1SecurityContext.js';\nexport * from '../models/V1SelectableField.js';\nexport * from '../models/V1SelfSubjectAccessReview.js';\nexport * from '../models/V1SelfSubjectAccessReviewSpec.js';\nexport * from '../models/V1SelfSubjectReview.js';\nexport * from '../models/V1SelfSubjectReviewStatus.js';\nexport * from '../models/V1SelfSubjectRulesReview.js';\nexport * from '../models/V1SelfSubjectRulesReviewSpec.js';\nexport * from '../models/V1ServerAddressByClientCIDR.js';\nexport * from '../models/V1Service.js';\nexport * from '../models/V1ServiceAccount.js';\nexport * from '../models/V1ServiceAccountList.js';\nexport * from '../models/V1ServiceAccountSubject.js';\nexport * from '../models/V1ServiceAccountTokenProjection.js';\nexport * from '../models/V1ServiceBackendPort.js';\nexport * from '../models/V1ServiceCIDR.js';\nexport * from '../models/V1ServiceCIDRList.js';\nexport * from '../models/V1ServiceCIDRSpec.js';\nexport * from '../models/V1ServiceCIDRStatus.js';\nexport * from '../models/V1ServiceList.js';\nexport * from '../models/V1ServicePort.js';\nexport * from '../models/V1ServiceSpec.js';\nexport * from '../models/V1ServiceStatus.js';\nexport * from '../models/V1SessionAffinityConfig.js';\nexport * from '../models/V1SleepAction.js';\nexport * from '../models/V1StatefulSet.js';\nexport * from '../models/V1StatefulSetCondition.js';\nexport * from '../models/V1StatefulSetList.js';\nexport * from '../models/V1StatefulSetOrdinals.js';\nexport * from '../models/V1StatefulSetPersistentVolumeClaimRetentionPolicy.js';\nexport * from '../models/V1StatefulSetSpec.js';\nexport * from '../models/V1StatefulSetStatus.js';\nexport * from '../models/V1StatefulSetUpdateStrategy.js';\nexport * from '../models/V1Status.js';\nexport * from '../models/V1StatusCause.js';\nexport * from '../models/V1StatusDetails.js';\nexport * from '../models/V1StorageClass.js';\nexport * from '../models/V1StorageClassList.js';\nexport * from '../models/V1StorageOSPersistentVolumeSource.js';\nexport * from '../models/V1StorageOSVolumeSource.js';\nexport * from '../models/V1SubjectAccessReview.js';\nexport * from '../models/V1SubjectAccessReviewSpec.js';\nexport * from '../models/V1SubjectAccessReviewStatus.js';\nexport * from '../models/V1SubjectRulesReviewStatus.js';\nexport * from '../models/V1SuccessPolicy.js';\nexport * from '../models/V1SuccessPolicyRule.js';\nexport * from '../models/V1Sysctl.js';\nexport * from '../models/V1TCPSocketAction.js';\nexport * from '../models/V1Taint.js';\nexport * from '../models/V1TokenRequestSpec.js';\nexport * from '../models/V1TokenRequestStatus.js';\nexport * from '../models/V1TokenReview.js';\nexport * from '../models/V1TokenReviewSpec.js';\nexport * from '../models/V1TokenReviewStatus.js';\nexport * from '../models/V1Toleration.js';\nexport * from '../models/V1TopologySelectorLabelRequirement.js';\nexport * from '../models/V1TopologySelectorTerm.js';\nexport * from '../models/V1TopologySpreadConstraint.js';\nexport * from '../models/V1TypeChecking.js';\nexport * from '../models/V1TypedLocalObjectReference.js';\nexport * from '../models/V1TypedObjectReference.js';\nexport * from '../models/V1UncountedTerminatedPods.js';\nexport * from '../models/V1UserInfo.js';\nexport * from '../models/V1UserSubject.js';\nexport * from '../models/V1ValidatingAdmissionPolicy.js';\nexport * from '../models/V1ValidatingAdmissionPolicyBinding.js';\nexport * from '../models/V1ValidatingAdmissionPolicyBindingList.js';\nexport * from '../models/V1ValidatingAdmissionPolicyBindingSpec.js';\nexport * from '../models/V1ValidatingAdmissionPolicyList.js';\nexport * from '../models/V1ValidatingAdmissionPolicySpec.js';\nexport * from '../models/V1ValidatingAdmissionPolicyStatus.js';\nexport * from '../models/V1ValidatingWebhook.js';\nexport * from '../models/V1ValidatingWebhookConfiguration.js';\nexport * from '../models/V1ValidatingWebhookConfigurationList.js';\nexport * from '../models/V1Validation.js';\nexport * from '../models/V1ValidationRule.js';\nexport * from '../models/V1Variable.js';\nexport * from '../models/V1Volume.js';\nexport * from '../models/V1VolumeAttachment.js';\nexport * from '../models/V1VolumeAttachmentList.js';\nexport * from '../models/V1VolumeAttachmentSource.js';\nexport * from '../models/V1VolumeAttachmentSpec.js';\nexport * from '../models/V1VolumeAttachmentStatus.js';\nexport * from '../models/V1VolumeDevice.js';\nexport * from '../models/V1VolumeError.js';\nexport * from '../models/V1VolumeMount.js';\nexport * from '../models/V1VolumeMountStatus.js';\nexport * from '../models/V1VolumeNodeAffinity.js';\nexport * from '../models/V1VolumeNodeResources.js';\nexport * from '../models/V1VolumeProjection.js';\nexport * from '../models/V1VolumeResourceRequirements.js';\nexport * from '../models/V1VsphereVirtualDiskVolumeSource.js';\nexport * from '../models/V1WatchEvent.js';\nexport * from '../models/V1WebhookConversion.js';\nexport * from '../models/V1WeightedPodAffinityTerm.js';\nexport * from '../models/V1WindowsSecurityContextOptions.js';\nexport * from '../models/V1alpha1ApplyConfiguration.js';\nexport * from '../models/V1alpha1ClusterTrustBundle.js';\nexport * from '../models/V1alpha1ClusterTrustBundleList.js';\nexport * from '../models/V1alpha1ClusterTrustBundleSpec.js';\nexport * from '../models/V1alpha1GroupVersionResource.js';\nexport * from '../models/V1alpha1JSONPatch.js';\nexport * from '../models/V1alpha1MatchCondition.js';\nexport * from '../models/V1alpha1MatchResources.js';\nexport * from '../models/V1alpha1MigrationCondition.js';\nexport * from '../models/V1alpha1MutatingAdmissionPolicy.js';\nexport * from '../models/V1alpha1MutatingAdmissionPolicyBinding.js';\nexport * from '../models/V1alpha1MutatingAdmissionPolicyBindingList.js';\nexport * from '../models/V1alpha1MutatingAdmissionPolicyBindingSpec.js';\nexport * from '../models/V1alpha1MutatingAdmissionPolicyList.js';\nexport * from '../models/V1alpha1MutatingAdmissionPolicySpec.js';\nexport * from '../models/V1alpha1Mutation.js';\nexport * from '../models/V1alpha1NamedRuleWithOperations.js';\nexport * from '../models/V1alpha1ParamKind.js';\nexport * from '../models/V1alpha1ParamRef.js';\nexport * from '../models/V1alpha1ServerStorageVersion.js';\nexport * from '../models/V1alpha1StorageVersion.js';\nexport * from '../models/V1alpha1StorageVersionCondition.js';\nexport * from '../models/V1alpha1StorageVersionList.js';\nexport * from '../models/V1alpha1StorageVersionMigration.js';\nexport * from '../models/V1alpha1StorageVersionMigrationList.js';\nexport * from '../models/V1alpha1StorageVersionMigrationSpec.js';\nexport * from '../models/V1alpha1StorageVersionMigrationStatus.js';\nexport * from '../models/V1alpha1StorageVersionStatus.js';\nexport * from '../models/V1alpha1Variable.js';\nexport * from '../models/V1alpha1VolumeAttributesClass.js';\nexport * from '../models/V1alpha1VolumeAttributesClassList.js';\nexport * from '../models/V1alpha2LeaseCandidate.js';\nexport * from '../models/V1alpha2LeaseCandidateList.js';\nexport * from '../models/V1alpha2LeaseCandidateSpec.js';\nexport * from '../models/V1alpha3AllocatedDeviceStatus.js';\nexport * from '../models/V1alpha3AllocationResult.js';\nexport * from '../models/V1alpha3BasicDevice.js';\nexport * from '../models/V1alpha3CELDeviceSelector.js';\nexport * from '../models/V1alpha3Counter.js';\nexport * from '../models/V1alpha3CounterSet.js';\nexport * from '../models/V1alpha3Device.js';\nexport * from '../models/V1alpha3DeviceAllocationConfiguration.js';\nexport * from '../models/V1alpha3DeviceAllocationResult.js';\nexport * from '../models/V1alpha3DeviceAttribute.js';\nexport * from '../models/V1alpha3DeviceClaim.js';\nexport * from '../models/V1alpha3DeviceClaimConfiguration.js';\nexport * from '../models/V1alpha3DeviceClass.js';\nexport * from '../models/V1alpha3DeviceClassConfiguration.js';\nexport * from '../models/V1alpha3DeviceClassList.js';\nexport * from '../models/V1alpha3DeviceClassSpec.js';\nexport * from '../models/V1alpha3DeviceConstraint.js';\nexport * from '../models/V1alpha3DeviceCounterConsumption.js';\nexport * from '../models/V1alpha3DeviceRequest.js';\nexport * from '../models/V1alpha3DeviceRequestAllocationResult.js';\nexport * from '../models/V1alpha3DeviceSelector.js';\nexport * from '../models/V1alpha3DeviceSubRequest.js';\nexport * from '../models/V1alpha3DeviceTaint.js';\nexport * from '../models/V1alpha3DeviceTaintRule.js';\nexport * from '../models/V1alpha3DeviceTaintRuleList.js';\nexport * from '../models/V1alpha3DeviceTaintRuleSpec.js';\nexport * from '../models/V1alpha3DeviceTaintSelector.js';\nexport * from '../models/V1alpha3DeviceToleration.js';\nexport * from '../models/V1alpha3NetworkDeviceData.js';\nexport * from '../models/V1alpha3OpaqueDeviceConfiguration.js';\nexport * from '../models/V1alpha3ResourceClaim.js';\nexport * from '../models/V1alpha3ResourceClaimConsumerReference.js';\nexport * from '../models/V1alpha3ResourceClaimList.js';\nexport * from '../models/V1alpha3ResourceClaimSpec.js';\nexport * from '../models/V1alpha3ResourceClaimStatus.js';\nexport * from '../models/V1alpha3ResourceClaimTemplate.js';\nexport * from '../models/V1alpha3ResourceClaimTemplateList.js';\nexport * from '../models/V1alpha3ResourceClaimTemplateSpec.js';\nexport * from '../models/V1alpha3ResourcePool.js';\nexport * from '../models/V1alpha3ResourceSlice.js';\nexport * from '../models/V1alpha3ResourceSliceList.js';\nexport * from '../models/V1alpha3ResourceSliceSpec.js';\nexport * from '../models/V1beta1AllocatedDeviceStatus.js';\nexport * from '../models/V1beta1AllocationResult.js';\nexport * from '../models/V1beta1AuditAnnotation.js';\nexport * from '../models/V1beta1BasicDevice.js';\nexport * from '../models/V1beta1CELDeviceSelector.js';\nexport * from '../models/V1beta1ClusterTrustBundle.js';\nexport * from '../models/V1beta1ClusterTrustBundleList.js';\nexport * from '../models/V1beta1ClusterTrustBundleSpec.js';\nexport * from '../models/V1beta1Counter.js';\nexport * from '../models/V1beta1CounterSet.js';\nexport * from '../models/V1beta1Device.js';\nexport * from '../models/V1beta1DeviceAllocationConfiguration.js';\nexport * from '../models/V1beta1DeviceAllocationResult.js';\nexport * from '../models/V1beta1DeviceAttribute.js';\nexport * from '../models/V1beta1DeviceCapacity.js';\nexport * from '../models/V1beta1DeviceClaim.js';\nexport * from '../models/V1beta1DeviceClaimConfiguration.js';\nexport * from '../models/V1beta1DeviceClass.js';\nexport * from '../models/V1beta1DeviceClassConfiguration.js';\nexport * from '../models/V1beta1DeviceClassList.js';\nexport * from '../models/V1beta1DeviceClassSpec.js';\nexport * from '../models/V1beta1DeviceConstraint.js';\nexport * from '../models/V1beta1DeviceCounterConsumption.js';\nexport * from '../models/V1beta1DeviceRequest.js';\nexport * from '../models/V1beta1DeviceRequestAllocationResult.js';\nexport * from '../models/V1beta1DeviceSelector.js';\nexport * from '../models/V1beta1DeviceSubRequest.js';\nexport * from '../models/V1beta1DeviceTaint.js';\nexport * from '../models/V1beta1DeviceToleration.js';\nexport * from '../models/V1beta1ExpressionWarning.js';\nexport * from '../models/V1beta1IPAddress.js';\nexport * from '../models/V1beta1IPAddressList.js';\nexport * from '../models/V1beta1IPAddressSpec.js';\nexport * from '../models/V1beta1LeaseCandidate.js';\nexport * from '../models/V1beta1LeaseCandidateList.js';\nexport * from '../models/V1beta1LeaseCandidateSpec.js';\nexport * from '../models/V1beta1MatchCondition.js';\nexport * from '../models/V1beta1MatchResources.js';\nexport * from '../models/V1beta1NamedRuleWithOperations.js';\nexport * from '../models/V1beta1NetworkDeviceData.js';\nexport * from '../models/V1beta1OpaqueDeviceConfiguration.js';\nexport * from '../models/V1beta1ParamKind.js';\nexport * from '../models/V1beta1ParamRef.js';\nexport * from '../models/V1beta1ParentReference.js';\nexport * from '../models/V1beta1ResourceClaim.js';\nexport * from '../models/V1beta1ResourceClaimConsumerReference.js';\nexport * from '../models/V1beta1ResourceClaimList.js';\nexport * from '../models/V1beta1ResourceClaimSpec.js';\nexport * from '../models/V1beta1ResourceClaimStatus.js';\nexport * from '../models/V1beta1ResourceClaimTemplate.js';\nexport * from '../models/V1beta1ResourceClaimTemplateList.js';\nexport * from '../models/V1beta1ResourceClaimTemplateSpec.js';\nexport * from '../models/V1beta1ResourcePool.js';\nexport * from '../models/V1beta1ResourceSlice.js';\nexport * from '../models/V1beta1ResourceSliceList.js';\nexport * from '../models/V1beta1ResourceSliceSpec.js';\nexport * from '../models/V1beta1ServiceCIDR.js';\nexport * from '../models/V1beta1ServiceCIDRList.js';\nexport * from '../models/V1beta1ServiceCIDRSpec.js';\nexport * from '../models/V1beta1ServiceCIDRStatus.js';\nexport * from '../models/V1beta1TypeChecking.js';\nexport * from '../models/V1beta1ValidatingAdmissionPolicy.js';\nexport * from '../models/V1beta1ValidatingAdmissionPolicyBinding.js';\nexport * from '../models/V1beta1ValidatingAdmissionPolicyBindingList.js';\nexport * from '../models/V1beta1ValidatingAdmissionPolicyBindingSpec.js';\nexport * from '../models/V1beta1ValidatingAdmissionPolicyList.js';\nexport * from '../models/V1beta1ValidatingAdmissionPolicySpec.js';\nexport * from '../models/V1beta1ValidatingAdmissionPolicyStatus.js';\nexport * from '../models/V1beta1Validation.js';\nexport * from '../models/V1beta1Variable.js';\nexport * from '../models/V1beta1VolumeAttributesClass.js';\nexport * from '../models/V1beta1VolumeAttributesClassList.js';\nexport * from '../models/V1beta2AllocatedDeviceStatus.js';\nexport * from '../models/V1beta2AllocationResult.js';\nexport * from '../models/V1beta2CELDeviceSelector.js';\nexport * from '../models/V1beta2Counter.js';\nexport * from '../models/V1beta2CounterSet.js';\nexport * from '../models/V1beta2Device.js';\nexport * from '../models/V1beta2DeviceAllocationConfiguration.js';\nexport * from '../models/V1beta2DeviceAllocationResult.js';\nexport * from '../models/V1beta2DeviceAttribute.js';\nexport * from '../models/V1beta2DeviceCapacity.js';\nexport * from '../models/V1beta2DeviceClaim.js';\nexport * from '../models/V1beta2DeviceClaimConfiguration.js';\nexport * from '../models/V1beta2DeviceClass.js';\nexport * from '../models/V1beta2DeviceClassConfiguration.js';\nexport * from '../models/V1beta2DeviceClassList.js';\nexport * from '../models/V1beta2DeviceClassSpec.js';\nexport * from '../models/V1beta2DeviceConstraint.js';\nexport * from '../models/V1beta2DeviceCounterConsumption.js';\nexport * from '../models/V1beta2DeviceRequest.js';\nexport * from '../models/V1beta2DeviceRequestAllocationResult.js';\nexport * from '../models/V1beta2DeviceSelector.js';\nexport * from '../models/V1beta2DeviceSubRequest.js';\nexport * from '../models/V1beta2DeviceTaint.js';\nexport * from '../models/V1beta2DeviceToleration.js';\nexport * from '../models/V1beta2ExactDeviceRequest.js';\nexport * from '../models/V1beta2NetworkDeviceData.js';\nexport * from '../models/V1beta2OpaqueDeviceConfiguration.js';\nexport * from '../models/V1beta2ResourceClaim.js';\nexport * from '../models/V1beta2ResourceClaimConsumerReference.js';\nexport * from '../models/V1beta2ResourceClaimList.js';\nexport * from '../models/V1beta2ResourceClaimSpec.js';\nexport * from '../models/V1beta2ResourceClaimStatus.js';\nexport * from '../models/V1beta2ResourceClaimTemplate.js';\nexport * from '../models/V1beta2ResourceClaimTemplateList.js';\nexport * from '../models/V1beta2ResourceClaimTemplateSpec.js';\nexport * from '../models/V1beta2ResourcePool.js';\nexport * from '../models/V1beta2ResourceSlice.js';\nexport * from '../models/V1beta2ResourceSliceList.js';\nexport * from '../models/V1beta2ResourceSliceSpec.js';\nexport * from '../models/V2ContainerResourceMetricSource.js';\nexport * from '../models/V2ContainerResourceMetricStatus.js';\nexport * from '../models/V2CrossVersionObjectReference.js';\nexport * from '../models/V2ExternalMetricSource.js';\nexport * from '../models/V2ExternalMetricStatus.js';\nexport * from '../models/V2HPAScalingPolicy.js';\nexport * from '../models/V2HPAScalingRules.js';\nexport * from '../models/V2HorizontalPodAutoscaler.js';\nexport * from '../models/V2HorizontalPodAutoscalerBehavior.js';\nexport * from '../models/V2HorizontalPodAutoscalerCondition.js';\nexport * from '../models/V2HorizontalPodAutoscalerList.js';\nexport * from '../models/V2HorizontalPodAutoscalerSpec.js';\nexport * from '../models/V2HorizontalPodAutoscalerStatus.js';\nexport * from '../models/V2MetricIdentifier.js';\nexport * from '../models/V2MetricSpec.js';\nexport * from '../models/V2MetricStatus.js';\nexport * from '../models/V2MetricTarget.js';\nexport * from '../models/V2MetricValueStatus.js';\nexport * from '../models/V2ObjectMetricSource.js';\nexport * from '../models/V2ObjectMetricStatus.js';\nexport * from '../models/V2PodsMetricSource.js';\nexport * from '../models/V2PodsMetricStatus.js';\nexport * from '../models/V2ResourceMetricSource.js';\nexport * from '../models/V2ResourceMetricStatus.js';\nexport * from '../models/VersionInfo.js';\nimport { AdmissionregistrationV1ServiceReference } from '../models/AdmissionregistrationV1ServiceReference.js';\nimport { AdmissionregistrationV1WebhookClientConfig } from '../models/AdmissionregistrationV1WebhookClientConfig.js';\nimport { ApiextensionsV1ServiceReference } from '../models/ApiextensionsV1ServiceReference.js';\nimport { ApiextensionsV1WebhookClientConfig } from '../models/ApiextensionsV1WebhookClientConfig.js';\nimport { ApiregistrationV1ServiceReference } from '../models/ApiregistrationV1ServiceReference.js';\nimport { AuthenticationV1TokenRequest } from '../models/AuthenticationV1TokenRequest.js';\nimport { CoreV1EndpointPort } from '../models/CoreV1EndpointPort.js';\nimport { CoreV1Event } from '../models/CoreV1Event.js';\nimport { CoreV1EventList } from '../models/CoreV1EventList.js';\nimport { CoreV1EventSeries } from '../models/CoreV1EventSeries.js';\nimport { DiscoveryV1EndpointPort } from '../models/DiscoveryV1EndpointPort.js';\nimport { EventsV1Event } from '../models/EventsV1Event.js';\nimport { EventsV1EventList } from '../models/EventsV1EventList.js';\nimport { EventsV1EventSeries } from '../models/EventsV1EventSeries.js';\nimport { FlowcontrolV1Subject } from '../models/FlowcontrolV1Subject.js';\nimport { RbacV1Subject } from '../models/RbacV1Subject.js';\nimport { StorageV1TokenRequest } from '../models/StorageV1TokenRequest.js';\nimport { V1APIGroup } from '../models/V1APIGroup.js';\nimport { V1APIGroupList } from '../models/V1APIGroupList.js';\nimport { V1APIResource } from '../models/V1APIResource.js';\nimport { V1APIResourceList } from '../models/V1APIResourceList.js';\nimport { V1APIService } from '../models/V1APIService.js';\nimport { V1APIServiceCondition } from '../models/V1APIServiceCondition.js';\nimport { V1APIServiceList } from '../models/V1APIServiceList.js';\nimport { V1APIServiceSpec } from '../models/V1APIServiceSpec.js';\nimport { V1APIServiceStatus } from '../models/V1APIServiceStatus.js';\nimport { V1APIVersions } from '../models/V1APIVersions.js';\nimport { V1AWSElasticBlockStoreVolumeSource } from '../models/V1AWSElasticBlockStoreVolumeSource.js';\nimport { V1Affinity } from '../models/V1Affinity.js';\nimport { V1AggregationRule } from '../models/V1AggregationRule.js';\nimport { V1AppArmorProfile } from '../models/V1AppArmorProfile.js';\nimport { V1AttachedVolume } from '../models/V1AttachedVolume.js';\nimport { V1AuditAnnotation } from '../models/V1AuditAnnotation.js';\nimport { V1AzureDiskVolumeSource } from '../models/V1AzureDiskVolumeSource.js';\nimport { V1AzureFilePersistentVolumeSource } from '../models/V1AzureFilePersistentVolumeSource.js';\nimport { V1AzureFileVolumeSource } from '../models/V1AzureFileVolumeSource.js';\nimport { V1Binding } from '../models/V1Binding.js';\nimport { V1BoundObjectReference } from '../models/V1BoundObjectReference.js';\nimport { V1CSIDriver } from '../models/V1CSIDriver.js';\nimport { V1CSIDriverList } from '../models/V1CSIDriverList.js';\nimport { V1CSIDriverSpec } from '../models/V1CSIDriverSpec.js';\nimport { V1CSINode } from '../models/V1CSINode.js';\nimport { V1CSINodeDriver } from '../models/V1CSINodeDriver.js';\nimport { V1CSINodeList } from '../models/V1CSINodeList.js';\nimport { V1CSINodeSpec } from '../models/V1CSINodeSpec.js';\nimport { V1CSIPersistentVolumeSource } from '../models/V1CSIPersistentVolumeSource.js';\nimport { V1CSIStorageCapacity } from '../models/V1CSIStorageCapacity.js';\nimport { V1CSIStorageCapacityList } from '../models/V1CSIStorageCapacityList.js';\nimport { V1CSIVolumeSource } from '../models/V1CSIVolumeSource.js';\nimport { V1Capabilities } from '../models/V1Capabilities.js';\nimport { V1CephFSPersistentVolumeSource } from '../models/V1CephFSPersistentVolumeSource.js';\nimport { V1CephFSVolumeSource } from '../models/V1CephFSVolumeSource.js';\nimport { V1CertificateSigningRequest } from '../models/V1CertificateSigningRequest.js';\nimport { V1CertificateSigningRequestCondition } from '../models/V1CertificateSigningRequestCondition.js';\nimport { V1CertificateSigningRequestList } from '../models/V1CertificateSigningRequestList.js';\nimport { V1CertificateSigningRequestSpec } from '../models/V1CertificateSigningRequestSpec.js';\nimport { V1CertificateSigningRequestStatus } from '../models/V1CertificateSigningRequestStatus.js';\nimport { V1CinderPersistentVolumeSource } from '../models/V1CinderPersistentVolumeSource.js';\nimport { V1CinderVolumeSource } from '../models/V1CinderVolumeSource.js';\nimport { V1ClientIPConfig } from '../models/V1ClientIPConfig.js';\nimport { V1ClusterRole } from '../models/V1ClusterRole.js';\nimport { V1ClusterRoleBinding } from '../models/V1ClusterRoleBinding.js';\nimport { V1ClusterRoleBindingList } from '../models/V1ClusterRoleBindingList.js';\nimport { V1ClusterRoleList } from '../models/V1ClusterRoleList.js';\nimport { V1ClusterTrustBundleProjection } from '../models/V1ClusterTrustBundleProjection.js';\nimport { V1ComponentCondition } from '../models/V1ComponentCondition.js';\nimport { V1ComponentStatus } from '../models/V1ComponentStatus.js';\nimport { V1ComponentStatusList } from '../models/V1ComponentStatusList.js';\nimport { V1Condition } from '../models/V1Condition.js';\nimport { V1ConfigMap } from '../models/V1ConfigMap.js';\nimport { V1ConfigMapEnvSource } from '../models/V1ConfigMapEnvSource.js';\nimport { V1ConfigMapKeySelector } from '../models/V1ConfigMapKeySelector.js';\nimport { V1ConfigMapList } from '../models/V1ConfigMapList.js';\nimport { V1ConfigMapNodeConfigSource } from '../models/V1ConfigMapNodeConfigSource.js';\nimport { V1ConfigMapProjection } from '../models/V1ConfigMapProjection.js';\nimport { V1ConfigMapVolumeSource } from '../models/V1ConfigMapVolumeSource.js';\nimport { V1Container } from '../models/V1Container.js';\nimport { V1ContainerImage } from '../models/V1ContainerImage.js';\nimport { V1ContainerPort } from '../models/V1ContainerPort.js';\nimport { V1ContainerResizePolicy } from '../models/V1ContainerResizePolicy.js';\nimport { V1ContainerState } from '../models/V1ContainerState.js';\nimport { V1ContainerStateRunning } from '../models/V1ContainerStateRunning.js';\nimport { V1ContainerStateTerminated } from '../models/V1ContainerStateTerminated.js';\nimport { V1ContainerStateWaiting } from '../models/V1ContainerStateWaiting.js';\nimport { V1ContainerStatus } from '../models/V1ContainerStatus.js';\nimport { V1ContainerUser } from '../models/V1ContainerUser.js';\nimport { V1ControllerRevision } from '../models/V1ControllerRevision.js';\nimport { V1ControllerRevisionList } from '../models/V1ControllerRevisionList.js';\nimport { V1CronJob } from '../models/V1CronJob.js';\nimport { V1CronJobList } from '../models/V1CronJobList.js';\nimport { V1CronJobSpec } from '../models/V1CronJobSpec.js';\nimport { V1CronJobStatus } from '../models/V1CronJobStatus.js';\nimport { V1CrossVersionObjectReference } from '../models/V1CrossVersionObjectReference.js';\nimport { V1CustomResourceColumnDefinition } from '../models/V1CustomResourceColumnDefinition.js';\nimport { V1CustomResourceConversion } from '../models/V1CustomResourceConversion.js';\nimport { V1CustomResourceDefinition } from '../models/V1CustomResourceDefinition.js';\nimport { V1CustomResourceDefinitionCondition } from '../models/V1CustomResourceDefinitionCondition.js';\nimport { V1CustomResourceDefinitionList } from '../models/V1CustomResourceDefinitionList.js';\nimport { V1CustomResourceDefinitionNames } from '../models/V1CustomResourceDefinitionNames.js';\nimport { V1CustomResourceDefinitionSpec } from '../models/V1CustomResourceDefinitionSpec.js';\nimport { V1CustomResourceDefinitionStatus } from '../models/V1CustomResourceDefinitionStatus.js';\nimport { V1CustomResourceDefinitionVersion } from '../models/V1CustomResourceDefinitionVersion.js';\nimport { V1CustomResourceSubresourceScale } from '../models/V1CustomResourceSubresourceScale.js';\nimport { V1CustomResourceSubresources } from '../models/V1CustomResourceSubresources.js';\nimport { V1CustomResourceValidation } from '../models/V1CustomResourceValidation.js';\nimport { V1DaemonEndpoint } from '../models/V1DaemonEndpoint.js';\nimport { V1DaemonSet } from '../models/V1DaemonSet.js';\nimport { V1DaemonSetCondition } from '../models/V1DaemonSetCondition.js';\nimport { V1DaemonSetList } from '../models/V1DaemonSetList.js';\nimport { V1DaemonSetSpec } from '../models/V1DaemonSetSpec.js';\nimport { V1DaemonSetStatus } from '../models/V1DaemonSetStatus.js';\nimport { V1DaemonSetUpdateStrategy } from '../models/V1DaemonSetUpdateStrategy.js';\nimport { V1DeleteOptions } from '../models/V1DeleteOptions.js';\nimport { V1Deployment } from '../models/V1Deployment.js';\nimport { V1DeploymentCondition } from '../models/V1DeploymentCondition.js';\nimport { V1DeploymentList } from '../models/V1DeploymentList.js';\nimport { V1DeploymentSpec } from '../models/V1DeploymentSpec.js';\nimport { V1DeploymentStatus } from '../models/V1DeploymentStatus.js';\nimport { V1DeploymentStrategy } from '../models/V1DeploymentStrategy.js';\nimport { V1DownwardAPIProjection } from '../models/V1DownwardAPIProjection.js';\nimport { V1DownwardAPIVolumeFile } from '../models/V1DownwardAPIVolumeFile.js';\nimport { V1DownwardAPIVolumeSource } from '../models/V1DownwardAPIVolumeSource.js';\nimport { V1EmptyDirVolumeSource } from '../models/V1EmptyDirVolumeSource.js';\nimport { V1Endpoint } from '../models/V1Endpoint.js';\nimport { V1EndpointAddress } from '../models/V1EndpointAddress.js';\nimport { V1EndpointConditions } from '../models/V1EndpointConditions.js';\nimport { V1EndpointHints } from '../models/V1EndpointHints.js';\nimport { V1EndpointSlice } from '../models/V1EndpointSlice.js';\nimport { V1EndpointSliceList } from '../models/V1EndpointSliceList.js';\nimport { V1EndpointSubset } from '../models/V1EndpointSubset.js';\nimport { V1Endpoints } from '../models/V1Endpoints.js';\nimport { V1EndpointsList } from '../models/V1EndpointsList.js';\nimport { V1EnvFromSource } from '../models/V1EnvFromSource.js';\nimport { V1EnvVar } from '../models/V1EnvVar.js';\nimport { V1EnvVarSource } from '../models/V1EnvVarSource.js';\nimport { V1EphemeralContainer } from '../models/V1EphemeralContainer.js';\nimport { V1EphemeralVolumeSource } from '../models/V1EphemeralVolumeSource.js';\nimport { V1EventSource } from '../models/V1EventSource.js';\nimport { V1Eviction } from '../models/V1Eviction.js';\nimport { V1ExecAction } from '../models/V1ExecAction.js';\nimport { V1ExemptPriorityLevelConfiguration } from '../models/V1ExemptPriorityLevelConfiguration.js';\nimport { V1ExpressionWarning } from '../models/V1ExpressionWarning.js';\nimport { V1ExternalDocumentation } from '../models/V1ExternalDocumentation.js';\nimport { V1FCVolumeSource } from '../models/V1FCVolumeSource.js';\nimport { V1FieldSelectorAttributes } from '../models/V1FieldSelectorAttributes.js';\nimport { V1FieldSelectorRequirement } from '../models/V1FieldSelectorRequirement.js';\nimport { V1FlexPersistentVolumeSource } from '../models/V1FlexPersistentVolumeSource.js';\nimport { V1FlexVolumeSource } from '../models/V1FlexVolumeSource.js';\nimport { V1FlockerVolumeSource } from '../models/V1FlockerVolumeSource.js';\nimport { V1FlowDistinguisherMethod } from '../models/V1FlowDistinguisherMethod.js';\nimport { V1FlowSchema } from '../models/V1FlowSchema.js';\nimport { V1FlowSchemaCondition } from '../models/V1FlowSchemaCondition.js';\nimport { V1FlowSchemaList } from '../models/V1FlowSchemaList.js';\nimport { V1FlowSchemaSpec } from '../models/V1FlowSchemaSpec.js';\nimport { V1FlowSchemaStatus } from '../models/V1FlowSchemaStatus.js';\nimport { V1ForNode } from '../models/V1ForNode.js';\nimport { V1ForZone } from '../models/V1ForZone.js';\nimport { V1GCEPersistentDiskVolumeSource } from '../models/V1GCEPersistentDiskVolumeSource.js';\nimport { V1GRPCAction } from '../models/V1GRPCAction.js';\nimport { V1GitRepoVolumeSource } from '../models/V1GitRepoVolumeSource.js';\nimport { V1GlusterfsPersistentVolumeSource } from '../models/V1GlusterfsPersistentVolumeSource.js';\nimport { V1GlusterfsVolumeSource } from '../models/V1GlusterfsVolumeSource.js';\nimport { V1GroupSubject } from '../models/V1GroupSubject.js';\nimport { V1GroupVersionForDiscovery } from '../models/V1GroupVersionForDiscovery.js';\nimport { V1HTTPGetAction } from '../models/V1HTTPGetAction.js';\nimport { V1HTTPHeader } from '../models/V1HTTPHeader.js';\nimport { V1HTTPIngressPath } from '../models/V1HTTPIngressPath.js';\nimport { V1HTTPIngressRuleValue } from '../models/V1HTTPIngressRuleValue.js';\nimport { V1HorizontalPodAutoscaler } from '../models/V1HorizontalPodAutoscaler.js';\nimport { V1HorizontalPodAutoscalerList } from '../models/V1HorizontalPodAutoscalerList.js';\nimport { V1HorizontalPodAutoscalerSpec } from '../models/V1HorizontalPodAutoscalerSpec.js';\nimport { V1HorizontalPodAutoscalerStatus } from '../models/V1HorizontalPodAutoscalerStatus.js';\nimport { V1HostAlias } from '../models/V1HostAlias.js';\nimport { V1HostIP } from '../models/V1HostIP.js';\nimport { V1HostPathVolumeSource } from '../models/V1HostPathVolumeSource.js';\nimport { V1IPAddress } from '../models/V1IPAddress.js';\nimport { V1IPAddressList } from '../models/V1IPAddressList.js';\nimport { V1IPAddressSpec } from '../models/V1IPAddressSpec.js';\nimport { V1IPBlock } from '../models/V1IPBlock.js';\nimport { V1ISCSIPersistentVolumeSource } from '../models/V1ISCSIPersistentVolumeSource.js';\nimport { V1ISCSIVolumeSource } from '../models/V1ISCSIVolumeSource.js';\nimport { V1ImageVolumeSource } from '../models/V1ImageVolumeSource.js';\nimport { V1Ingress } from '../models/V1Ingress.js';\nimport { V1IngressBackend } from '../models/V1IngressBackend.js';\nimport { V1IngressClass } from '../models/V1IngressClass.js';\nimport { V1IngressClassList } from '../models/V1IngressClassList.js';\nimport { V1IngressClassParametersReference } from '../models/V1IngressClassParametersReference.js';\nimport { V1IngressClassSpec } from '../models/V1IngressClassSpec.js';\nimport { V1IngressList } from '../models/V1IngressList.js';\nimport { V1IngressLoadBalancerIngress } from '../models/V1IngressLoadBalancerIngress.js';\nimport { V1IngressLoadBalancerStatus } from '../models/V1IngressLoadBalancerStatus.js';\nimport { V1IngressPortStatus } from '../models/V1IngressPortStatus.js';\nimport { V1IngressRule } from '../models/V1IngressRule.js';\nimport { V1IngressServiceBackend } from '../models/V1IngressServiceBackend.js';\nimport { V1IngressSpec } from '../models/V1IngressSpec.js';\nimport { V1IngressStatus } from '../models/V1IngressStatus.js';\nimport { V1IngressTLS } from '../models/V1IngressTLS.js';\nimport { V1JSONSchemaProps } from '../models/V1JSONSchemaProps.js';\nimport { V1Job } from '../models/V1Job.js';\nimport { V1JobCondition } from '../models/V1JobCondition.js';\nimport { V1JobList } from '../models/V1JobList.js';\nimport { V1JobSpec } from '../models/V1JobSpec.js';\nimport { V1JobStatus } from '../models/V1JobStatus.js';\nimport { V1JobTemplateSpec } from '../models/V1JobTemplateSpec.js';\nimport { V1KeyToPath } from '../models/V1KeyToPath.js';\nimport { V1LabelSelector } from '../models/V1LabelSelector.js';\nimport { V1LabelSelectorAttributes } from '../models/V1LabelSelectorAttributes.js';\nimport { V1LabelSelectorRequirement } from '../models/V1LabelSelectorRequirement.js';\nimport { V1Lease } from '../models/V1Lease.js';\nimport { V1LeaseList } from '../models/V1LeaseList.js';\nimport { V1LeaseSpec } from '../models/V1LeaseSpec.js';\nimport { V1Lifecycle } from '../models/V1Lifecycle.js';\nimport { V1LifecycleHandler } from '../models/V1LifecycleHandler.js';\nimport { V1LimitRange } from '../models/V1LimitRange.js';\nimport { V1LimitRangeItem } from '../models/V1LimitRangeItem.js';\nimport { V1LimitRangeList } from '../models/V1LimitRangeList.js';\nimport { V1LimitRangeSpec } from '../models/V1LimitRangeSpec.js';\nimport { V1LimitResponse } from '../models/V1LimitResponse.js';\nimport { V1LimitedPriorityLevelConfiguration } from '../models/V1LimitedPriorityLevelConfiguration.js';\nimport { V1LinuxContainerUser } from '../models/V1LinuxContainerUser.js';\nimport { V1ListMeta } from '../models/V1ListMeta.js';\nimport { V1LoadBalancerIngress } from '../models/V1LoadBalancerIngress.js';\nimport { V1LoadBalancerStatus } from '../models/V1LoadBalancerStatus.js';\nimport { V1LocalObjectReference } from '../models/V1LocalObjectReference.js';\nimport { V1LocalSubjectAccessReview } from '../models/V1LocalSubjectAccessReview.js';\nimport { V1LocalVolumeSource } from '../models/V1LocalVolumeSource.js';\nimport { V1ManagedFieldsEntry } from '../models/V1ManagedFieldsEntry.js';\nimport { V1MatchCondition } from '../models/V1MatchCondition.js';\nimport { V1MatchResources } from '../models/V1MatchResources.js';\nimport { V1ModifyVolumeStatus } from '../models/V1ModifyVolumeStatus.js';\nimport { V1MutatingWebhook } from '../models/V1MutatingWebhook.js';\nimport { V1MutatingWebhookConfiguration } from '../models/V1MutatingWebhookConfiguration.js';\nimport { V1MutatingWebhookConfigurationList } from '../models/V1MutatingWebhookConfigurationList.js';\nimport { V1NFSVolumeSource } from '../models/V1NFSVolumeSource.js';\nimport { V1NamedRuleWithOperations } from '../models/V1NamedRuleWithOperations.js';\nimport { V1Namespace } from '../models/V1Namespace.js';\nimport { V1NamespaceCondition } from '../models/V1NamespaceCondition.js';\nimport { V1NamespaceList } from '../models/V1NamespaceList.js';\nimport { V1NamespaceSpec } from '../models/V1NamespaceSpec.js';\nimport { V1NamespaceStatus } from '../models/V1NamespaceStatus.js';\nimport { V1NetworkPolicy } from '../models/V1NetworkPolicy.js';\nimport { V1NetworkPolicyEgressRule } from '../models/V1NetworkPolicyEgressRule.js';\nimport { V1NetworkPolicyIngressRule } from '../models/V1NetworkPolicyIngressRule.js';\nimport { V1NetworkPolicyList } from '../models/V1NetworkPolicyList.js';\nimport { V1NetworkPolicyPeer } from '../models/V1NetworkPolicyPeer.js';\nimport { V1NetworkPolicyPort } from '../models/V1NetworkPolicyPort.js';\nimport { V1NetworkPolicySpec } from '../models/V1NetworkPolicySpec.js';\nimport { V1Node } from '../models/V1Node.js';\nimport { V1NodeAddress } from '../models/V1NodeAddress.js';\nimport { V1NodeAffinity } from '../models/V1NodeAffinity.js';\nimport { V1NodeCondition } from '../models/V1NodeCondition.js';\nimport { V1NodeConfigSource } from '../models/V1NodeConfigSource.js';\nimport { V1NodeConfigStatus } from '../models/V1NodeConfigStatus.js';\nimport { V1NodeDaemonEndpoints } from '../models/V1NodeDaemonEndpoints.js';\nimport { V1NodeFeatures } from '../models/V1NodeFeatures.js';\nimport { V1NodeList } from '../models/V1NodeList.js';\nimport { V1NodeRuntimeHandler } from '../models/V1NodeRuntimeHandler.js';\nimport { V1NodeRuntimeHandlerFeatures } from '../models/V1NodeRuntimeHandlerFeatures.js';\nimport { V1NodeSelector } from '../models/V1NodeSelector.js';\nimport { V1NodeSelectorRequirement } from '../models/V1NodeSelectorRequirement.js';\nimport { V1NodeSelectorTerm } from '../models/V1NodeSelectorTerm.js';\nimport { V1NodeSpec } from '../models/V1NodeSpec.js';\nimport { V1NodeStatus } from '../models/V1NodeStatus.js';\nimport { V1NodeSwapStatus } from '../models/V1NodeSwapStatus.js';\nimport { V1NodeSystemInfo } from '../models/V1NodeSystemInfo.js';\nimport { V1NonResourceAttributes } from '../models/V1NonResourceAttributes.js';\nimport { V1NonResourcePolicyRule } from '../models/V1NonResourcePolicyRule.js';\nimport { V1NonResourceRule } from '../models/V1NonResourceRule.js';\nimport { V1ObjectFieldSelector } from '../models/V1ObjectFieldSelector.js';\nimport { V1ObjectMeta } from '../models/V1ObjectMeta.js';\nimport { V1ObjectReference } from '../models/V1ObjectReference.js';\nimport { V1Overhead } from '../models/V1Overhead.js';\nimport { V1OwnerReference } from '../models/V1OwnerReference.js';\nimport { V1ParamKind } from '../models/V1ParamKind.js';\nimport { V1ParamRef } from '../models/V1ParamRef.js';\nimport { V1ParentReference } from '../models/V1ParentReference.js';\nimport { V1PersistentVolume } from '../models/V1PersistentVolume.js';\nimport { V1PersistentVolumeClaim } from '../models/V1PersistentVolumeClaim.js';\nimport { V1PersistentVolumeClaimCondition } from '../models/V1PersistentVolumeClaimCondition.js';\nimport { V1PersistentVolumeClaimList } from '../models/V1PersistentVolumeClaimList.js';\nimport { V1PersistentVolumeClaimSpec } from '../models/V1PersistentVolumeClaimSpec.js';\nimport { V1PersistentVolumeClaimStatus } from '../models/V1PersistentVolumeClaimStatus.js';\nimport { V1PersistentVolumeClaimTemplate } from '../models/V1PersistentVolumeClaimTemplate.js';\nimport { V1PersistentVolumeClaimVolumeSource } from '../models/V1PersistentVolumeClaimVolumeSource.js';\nimport { V1PersistentVolumeList } from '../models/V1PersistentVolumeList.js';\nimport { V1PersistentVolumeSpec } from '../models/V1PersistentVolumeSpec.js';\nimport { V1PersistentVolumeStatus } from '../models/V1PersistentVolumeStatus.js';\nimport { V1PhotonPersistentDiskVolumeSource } from '../models/V1PhotonPersistentDiskVolumeSource.js';\nimport { V1Pod } from '../models/V1Pod.js';\nimport { V1PodAffinity } from '../models/V1PodAffinity.js';\nimport { V1PodAffinityTerm } from '../models/V1PodAffinityTerm.js';\nimport { V1PodAntiAffinity } from '../models/V1PodAntiAffinity.js';\nimport { V1PodCondition } from '../models/V1PodCondition.js';\nimport { V1PodDNSConfig } from '../models/V1PodDNSConfig.js';\nimport { V1PodDNSConfigOption } from '../models/V1PodDNSConfigOption.js';\nimport { V1PodDisruptionBudget } from '../models/V1PodDisruptionBudget.js';\nimport { V1PodDisruptionBudgetList } from '../models/V1PodDisruptionBudgetList.js';\nimport { V1PodDisruptionBudgetSpec } from '../models/V1PodDisruptionBudgetSpec.js';\nimport { V1PodDisruptionBudgetStatus } from '../models/V1PodDisruptionBudgetStatus.js';\nimport { V1PodFailurePolicy } from '../models/V1PodFailurePolicy.js';\nimport { V1PodFailurePolicyOnExitCodesRequirement } from '../models/V1PodFailurePolicyOnExitCodesRequirement.js';\nimport { V1PodFailurePolicyOnPodConditionsPattern } from '../models/V1PodFailurePolicyOnPodConditionsPattern.js';\nimport { V1PodFailurePolicyRule } from '../models/V1PodFailurePolicyRule.js';\nimport { V1PodIP } from '../models/V1PodIP.js';\nimport { V1PodList } from '../models/V1PodList.js';\nimport { V1PodOS } from '../models/V1PodOS.js';\nimport { V1PodReadinessGate } from '../models/V1PodReadinessGate.js';\nimport { V1PodResourceClaim } from '../models/V1PodResourceClaim.js';\nimport { V1PodResourceClaimStatus } from '../models/V1PodResourceClaimStatus.js';\nimport { V1PodSchedulingGate } from '../models/V1PodSchedulingGate.js';\nimport { V1PodSecurityContext } from '../models/V1PodSecurityContext.js';\nimport { V1PodSpec } from '../models/V1PodSpec.js';\nimport { V1PodStatus } from '../models/V1PodStatus.js';\nimport { V1PodTemplate } from '../models/V1PodTemplate.js';\nimport { V1PodTemplateList } from '../models/V1PodTemplateList.js';\nimport { V1PodTemplateSpec } from '../models/V1PodTemplateSpec.js';\nimport { V1PolicyRule } from '../models/V1PolicyRule.js';\nimport { V1PolicyRulesWithSubjects } from '../models/V1PolicyRulesWithSubjects.js';\nimport { V1PortStatus } from '../models/V1PortStatus.js';\nimport { V1PortworxVolumeSource } from '../models/V1PortworxVolumeSource.js';\nimport { V1Preconditions } from '../models/V1Preconditions.js';\nimport { V1PreferredSchedulingTerm } from '../models/V1PreferredSchedulingTerm.js';\nimport { V1PriorityClass } from '../models/V1PriorityClass.js';\nimport { V1PriorityClassList } from '../models/V1PriorityClassList.js';\nimport { V1PriorityLevelConfiguration } from '../models/V1PriorityLevelConfiguration.js';\nimport { V1PriorityLevelConfigurationCondition } from '../models/V1PriorityLevelConfigurationCondition.js';\nimport { V1PriorityLevelConfigurationList } from '../models/V1PriorityLevelConfigurationList.js';\nimport { V1PriorityLevelConfigurationReference } from '../models/V1PriorityLevelConfigurationReference.js';\nimport { V1PriorityLevelConfigurationSpec } from '../models/V1PriorityLevelConfigurationSpec.js';\nimport { V1PriorityLevelConfigurationStatus } from '../models/V1PriorityLevelConfigurationStatus.js';\nimport { V1Probe } from '../models/V1Probe.js';\nimport { V1ProjectedVolumeSource } from '../models/V1ProjectedVolumeSource.js';\nimport { V1QueuingConfiguration } from '../models/V1QueuingConfiguration.js';\nimport { V1QuobyteVolumeSource } from '../models/V1QuobyteVolumeSource.js';\nimport { V1RBDPersistentVolumeSource } from '../models/V1RBDPersistentVolumeSource.js';\nimport { V1RBDVolumeSource } from '../models/V1RBDVolumeSource.js';\nimport { V1ReplicaSet } from '../models/V1ReplicaSet.js';\nimport { V1ReplicaSetCondition } from '../models/V1ReplicaSetCondition.js';\nimport { V1ReplicaSetList } from '../models/V1ReplicaSetList.js';\nimport { V1ReplicaSetSpec } from '../models/V1ReplicaSetSpec.js';\nimport { V1ReplicaSetStatus } from '../models/V1ReplicaSetStatus.js';\nimport { V1ReplicationController } from '../models/V1ReplicationController.js';\nimport { V1ReplicationControllerCondition } from '../models/V1ReplicationControllerCondition.js';\nimport { V1ReplicationControllerList } from '../models/V1ReplicationControllerList.js';\nimport { V1ReplicationControllerSpec } from '../models/V1ReplicationControllerSpec.js';\nimport { V1ReplicationControllerStatus } from '../models/V1ReplicationControllerStatus.js';\nimport { V1ResourceAttributes } from '../models/V1ResourceAttributes.js';\nimport { V1ResourceClaim } from '../models/V1ResourceClaim.js';\nimport { V1ResourceFieldSelector } from '../models/V1ResourceFieldSelector.js';\nimport { V1ResourceHealth } from '../models/V1ResourceHealth.js';\nimport { V1ResourcePolicyRule } from '../models/V1ResourcePolicyRule.js';\nimport { V1ResourceQuota } from '../models/V1ResourceQuota.js';\nimport { V1ResourceQuotaList } from '../models/V1ResourceQuotaList.js';\nimport { V1ResourceQuotaSpec } from '../models/V1ResourceQuotaSpec.js';\nimport { V1ResourceQuotaStatus } from '../models/V1ResourceQuotaStatus.js';\nimport { V1ResourceRequirements } from '../models/V1ResourceRequirements.js';\nimport { V1ResourceRule } from '../models/V1ResourceRule.js';\nimport { V1ResourceStatus } from '../models/V1ResourceStatus.js';\nimport { V1Role } from '../models/V1Role.js';\nimport { V1RoleBinding } from '../models/V1RoleBinding.js';\nimport { V1RoleBindingList } from '../models/V1RoleBindingList.js';\nimport { V1RoleList } from '../models/V1RoleList.js';\nimport { V1RoleRef } from '../models/V1RoleRef.js';\nimport { V1RollingUpdateDaemonSet } from '../models/V1RollingUpdateDaemonSet.js';\nimport { V1RollingUpdateDeployment } from '../models/V1RollingUpdateDeployment.js';\nimport { V1RollingUpdateStatefulSetStrategy } from '../models/V1RollingUpdateStatefulSetStrategy.js';\nimport { V1RuleWithOperations } from '../models/V1RuleWithOperations.js';\nimport { V1RuntimeClass } from '../models/V1RuntimeClass.js';\nimport { V1RuntimeClassList } from '../models/V1RuntimeClassList.js';\nimport { V1SELinuxOptions } from '../models/V1SELinuxOptions.js';\nimport { V1Scale } from '../models/V1Scale.js';\nimport { V1ScaleIOPersistentVolumeSource } from '../models/V1ScaleIOPersistentVolumeSource.js';\nimport { V1ScaleIOVolumeSource } from '../models/V1ScaleIOVolumeSource.js';\nimport { V1ScaleSpec } from '../models/V1ScaleSpec.js';\nimport { V1ScaleStatus } from '../models/V1ScaleStatus.js';\nimport { V1Scheduling } from '../models/V1Scheduling.js';\nimport { V1ScopeSelector } from '../models/V1ScopeSelector.js';\nimport { V1ScopedResourceSelectorRequirement } from '../models/V1ScopedResourceSelectorRequirement.js';\nimport { V1SeccompProfile } from '../models/V1SeccompProfile.js';\nimport { V1Secret } from '../models/V1Secret.js';\nimport { V1SecretEnvSource } from '../models/V1SecretEnvSource.js';\nimport { V1SecretKeySelector } from '../models/V1SecretKeySelector.js';\nimport { V1SecretList } from '../models/V1SecretList.js';\nimport { V1SecretProjection } from '../models/V1SecretProjection.js';\nimport { V1SecretReference } from '../models/V1SecretReference.js';\nimport { V1SecretVolumeSource } from '../models/V1SecretVolumeSource.js';\nimport { V1SecurityContext } from '../models/V1SecurityContext.js';\nimport { V1SelectableField } from '../models/V1SelectableField.js';\nimport { V1SelfSubjectAccessReview } from '../models/V1SelfSubjectAccessReview.js';\nimport { V1SelfSubjectAccessReviewSpec } from '../models/V1SelfSubjectAccessReviewSpec.js';\nimport { V1SelfSubjectReview } from '../models/V1SelfSubjectReview.js';\nimport { V1SelfSubjectReviewStatus } from '../models/V1SelfSubjectReviewStatus.js';\nimport { V1SelfSubjectRulesReview } from '../models/V1SelfSubjectRulesReview.js';\nimport { V1SelfSubjectRulesReviewSpec } from '../models/V1SelfSubjectRulesReviewSpec.js';\nimport { V1ServerAddressByClientCIDR } from '../models/V1ServerAddressByClientCIDR.js';\nimport { V1Service } from '../models/V1Service.js';\nimport { V1ServiceAccount } from '../models/V1ServiceAccount.js';\nimport { V1ServiceAccountList } from '../models/V1ServiceAccountList.js';\nimport { V1ServiceAccountSubject } from '../models/V1ServiceAccountSubject.js';\nimport { V1ServiceAccountTokenProjection } from '../models/V1ServiceAccountTokenProjection.js';\nimport { V1ServiceBackendPort } from '../models/V1ServiceBackendPort.js';\nimport { V1ServiceCIDR } from '../models/V1ServiceCIDR.js';\nimport { V1ServiceCIDRList } from '../models/V1ServiceCIDRList.js';\nimport { V1ServiceCIDRSpec } from '../models/V1ServiceCIDRSpec.js';\nimport { V1ServiceCIDRStatus } from '../models/V1ServiceCIDRStatus.js';\nimport { V1ServiceList } from '../models/V1ServiceList.js';\nimport { V1ServicePort } from '../models/V1ServicePort.js';\nimport { V1ServiceSpec } from '../models/V1ServiceSpec.js';\nimport { V1ServiceStatus } from '../models/V1ServiceStatus.js';\nimport { V1SessionAffinityConfig } from '../models/V1SessionAffinityConfig.js';\nimport { V1SleepAction } from '../models/V1SleepAction.js';\nimport { V1StatefulSet } from '../models/V1StatefulSet.js';\nimport { V1StatefulSetCondition } from '../models/V1StatefulSetCondition.js';\nimport { V1StatefulSetList } from '../models/V1StatefulSetList.js';\nimport { V1StatefulSetOrdinals } from '../models/V1StatefulSetOrdinals.js';\nimport { V1StatefulSetPersistentVolumeClaimRetentionPolicy } from '../models/V1StatefulSetPersistentVolumeClaimRetentionPolicy.js';\nimport { V1StatefulSetSpec } from '../models/V1StatefulSetSpec.js';\nimport { V1StatefulSetStatus } from '../models/V1StatefulSetStatus.js';\nimport { V1StatefulSetUpdateStrategy } from '../models/V1StatefulSetUpdateStrategy.js';\nimport { V1Status } from '../models/V1Status.js';\nimport { V1StatusCause } from '../models/V1StatusCause.js';\nimport { V1StatusDetails } from '../models/V1StatusDetails.js';\nimport { V1StorageClass } from '../models/V1StorageClass.js';\nimport { V1StorageClassList } from '../models/V1StorageClassList.js';\nimport { V1StorageOSPersistentVolumeSource } from '../models/V1StorageOSPersistentVolumeSource.js';\nimport { V1StorageOSVolumeSource } from '../models/V1StorageOSVolumeSource.js';\nimport { V1SubjectAccessReview } from '../models/V1SubjectAccessReview.js';\nimport { V1SubjectAccessReviewSpec } from '../models/V1SubjectAccessReviewSpec.js';\nimport { V1SubjectAccessReviewStatus } from '../models/V1SubjectAccessReviewStatus.js';\nimport { V1SubjectRulesReviewStatus } from '../models/V1SubjectRulesReviewStatus.js';\nimport { V1SuccessPolicy } from '../models/V1SuccessPolicy.js';\nimport { V1SuccessPolicyRule } from '../models/V1SuccessPolicyRule.js';\nimport { V1Sysctl } from '../models/V1Sysctl.js';\nimport { V1TCPSocketAction } from '../models/V1TCPSocketAction.js';\nimport { V1Taint } from '../models/V1Taint.js';\nimport { V1TokenRequestSpec } from '../models/V1TokenRequestSpec.js';\nimport { V1TokenRequestStatus } from '../models/V1TokenRequestStatus.js';\nimport { V1TokenReview } from '../models/V1TokenReview.js';\nimport { V1TokenReviewSpec } from '../models/V1TokenReviewSpec.js';\nimport { V1TokenReviewStatus } from '../models/V1TokenReviewStatus.js';\nimport { V1Toleration } from '../models/V1Toleration.js';\nimport { V1TopologySelectorLabelRequirement } from '../models/V1TopologySelectorLabelRequirement.js';\nimport { V1TopologySelectorTerm } from '../models/V1TopologySelectorTerm.js';\nimport { V1TopologySpreadConstraint } from '../models/V1TopologySpreadConstraint.js';\nimport { V1TypeChecking } from '../models/V1TypeChecking.js';\nimport { V1TypedLocalObjectReference } from '../models/V1TypedLocalObjectReference.js';\nimport { V1TypedObjectReference } from '../models/V1TypedObjectReference.js';\nimport { V1UncountedTerminatedPods } from '../models/V1UncountedTerminatedPods.js';\nimport { V1UserInfo } from '../models/V1UserInfo.js';\nimport { V1UserSubject } from '../models/V1UserSubject.js';\nimport { V1ValidatingAdmissionPolicy } from '../models/V1ValidatingAdmissionPolicy.js';\nimport { V1ValidatingAdmissionPolicyBinding } from '../models/V1ValidatingAdmissionPolicyBinding.js';\nimport { V1ValidatingAdmissionPolicyBindingList } from '../models/V1ValidatingAdmissionPolicyBindingList.js';\nimport { V1ValidatingAdmissionPolicyBindingSpec } from '../models/V1ValidatingAdmissionPolicyBindingSpec.js';\nimport { V1ValidatingAdmissionPolicyList } from '../models/V1ValidatingAdmissionPolicyList.js';\nimport { V1ValidatingAdmissionPolicySpec } from '../models/V1ValidatingAdmissionPolicySpec.js';\nimport { V1ValidatingAdmissionPolicyStatus } from '../models/V1ValidatingAdmissionPolicyStatus.js';\nimport { V1ValidatingWebhook } from '../models/V1ValidatingWebhook.js';\nimport { V1ValidatingWebhookConfiguration } from '../models/V1ValidatingWebhookConfiguration.js';\nimport { V1ValidatingWebhookConfigurationList } from '../models/V1ValidatingWebhookConfigurationList.js';\nimport { V1Validation } from '../models/V1Validation.js';\nimport { V1ValidationRule } from '../models/V1ValidationRule.js';\nimport { V1Variable } from '../models/V1Variable.js';\nimport { V1Volume } from '../models/V1Volume.js';\nimport { V1VolumeAttachment } from '../models/V1VolumeAttachment.js';\nimport { V1VolumeAttachmentList } from '../models/V1VolumeAttachmentList.js';\nimport { V1VolumeAttachmentSource } from '../models/V1VolumeAttachmentSource.js';\nimport { V1VolumeAttachmentSpec } from '../models/V1VolumeAttachmentSpec.js';\nimport { V1VolumeAttachmentStatus } from '../models/V1VolumeAttachmentStatus.js';\nimport { V1VolumeDevice } from '../models/V1VolumeDevice.js';\nimport { V1VolumeError } from '../models/V1VolumeError.js';\nimport { V1VolumeMount } from '../models/V1VolumeMount.js';\nimport { V1VolumeMountStatus } from '../models/V1VolumeMountStatus.js';\nimport { V1VolumeNodeAffinity } from '../models/V1VolumeNodeAffinity.js';\nimport { V1VolumeNodeResources } from '../models/V1VolumeNodeResources.js';\nimport { V1VolumeProjection } from '../models/V1VolumeProjection.js';\nimport { V1VolumeResourceRequirements } from '../models/V1VolumeResourceRequirements.js';\nimport { V1VsphereVirtualDiskVolumeSource } from '../models/V1VsphereVirtualDiskVolumeSource.js';\nimport { V1WatchEvent } from '../models/V1WatchEvent.js';\nimport { V1WebhookConversion } from '../models/V1WebhookConversion.js';\nimport { V1WeightedPodAffinityTerm } from '../models/V1WeightedPodAffinityTerm.js';\nimport { V1WindowsSecurityContextOptions } from '../models/V1WindowsSecurityContextOptions.js';\nimport { V1alpha1ApplyConfiguration } from '../models/V1alpha1ApplyConfiguration.js';\nimport { V1alpha1ClusterTrustBundle } from '../models/V1alpha1ClusterTrustBundle.js';\nimport { V1alpha1ClusterTrustBundleList } from '../models/V1alpha1ClusterTrustBundleList.js';\nimport { V1alpha1ClusterTrustBundleSpec } from '../models/V1alpha1ClusterTrustBundleSpec.js';\nimport { V1alpha1GroupVersionResource } from '../models/V1alpha1GroupVersionResource.js';\nimport { V1alpha1JSONPatch } from '../models/V1alpha1JSONPatch.js';\nimport { V1alpha1MatchCondition } from '../models/V1alpha1MatchCondition.js';\nimport { V1alpha1MatchResources } from '../models/V1alpha1MatchResources.js';\nimport { V1alpha1MigrationCondition } from '../models/V1alpha1MigrationCondition.js';\nimport { V1alpha1MutatingAdmissionPolicy } from '../models/V1alpha1MutatingAdmissionPolicy.js';\nimport { V1alpha1MutatingAdmissionPolicyBinding } from '../models/V1alpha1MutatingAdmissionPolicyBinding.js';\nimport { V1alpha1MutatingAdmissionPolicyBindingList } from '../models/V1alpha1MutatingAdmissionPolicyBindingList.js';\nimport { V1alpha1MutatingAdmissionPolicyBindingSpec } from '../models/V1alpha1MutatingAdmissionPolicyBindingSpec.js';\nimport { V1alpha1MutatingAdmissionPolicyList } from '../models/V1alpha1MutatingAdmissionPolicyList.js';\nimport { V1alpha1MutatingAdmissionPolicySpec } from '../models/V1alpha1MutatingAdmissionPolicySpec.js';\nimport { V1alpha1Mutation } from '../models/V1alpha1Mutation.js';\nimport { V1alpha1NamedRuleWithOperations } from '../models/V1alpha1NamedRuleWithOperations.js';\nimport { V1alpha1ParamKind } from '../models/V1alpha1ParamKind.js';\nimport { V1alpha1ParamRef } from '../models/V1alpha1ParamRef.js';\nimport { V1alpha1ServerStorageVersion } from '../models/V1alpha1ServerStorageVersion.js';\nimport { V1alpha1StorageVersion } from '../models/V1alpha1StorageVersion.js';\nimport { V1alpha1StorageVersionCondition } from '../models/V1alpha1StorageVersionCondition.js';\nimport { V1alpha1StorageVersionList } from '../models/V1alpha1StorageVersionList.js';\nimport { V1alpha1StorageVersionMigration } from '../models/V1alpha1StorageVersionMigration.js';\nimport { V1alpha1StorageVersionMigrationList } from '../models/V1alpha1StorageVersionMigrationList.js';\nimport { V1alpha1StorageVersionMigrationSpec } from '../models/V1alpha1StorageVersionMigrationSpec.js';\nimport { V1alpha1StorageVersionMigrationStatus } from '../models/V1alpha1StorageVersionMigrationStatus.js';\nimport { V1alpha1StorageVersionStatus } from '../models/V1alpha1StorageVersionStatus.js';\nimport { V1alpha1Variable } from '../models/V1alpha1Variable.js';\nimport { V1alpha1VolumeAttributesClass } from '../models/V1alpha1VolumeAttributesClass.js';\nimport { V1alpha1VolumeAttributesClassList } from '../models/V1alpha1VolumeAttributesClassList.js';\nimport { V1alpha2LeaseCandidate } from '../models/V1alpha2LeaseCandidate.js';\nimport { V1alpha2LeaseCandidateList } from '../models/V1alpha2LeaseCandidateList.js';\nimport { V1alpha2LeaseCandidateSpec } from '../models/V1alpha2LeaseCandidateSpec.js';\nimport { V1alpha3AllocatedDeviceStatus } from '../models/V1alpha3AllocatedDeviceStatus.js';\nimport { V1alpha3AllocationResult } from '../models/V1alpha3AllocationResult.js';\nimport { V1alpha3BasicDevice } from '../models/V1alpha3BasicDevice.js';\nimport { V1alpha3CELDeviceSelector } from '../models/V1alpha3CELDeviceSelector.js';\nimport { V1alpha3Counter } from '../models/V1alpha3Counter.js';\nimport { V1alpha3CounterSet } from '../models/V1alpha3CounterSet.js';\nimport { V1alpha3Device } from '../models/V1alpha3Device.js';\nimport { V1alpha3DeviceAllocationConfiguration } from '../models/V1alpha3DeviceAllocationConfiguration.js';\nimport { V1alpha3DeviceAllocationResult } from '../models/V1alpha3DeviceAllocationResult.js';\nimport { V1alpha3DeviceAttribute } from '../models/V1alpha3DeviceAttribute.js';\nimport { V1alpha3DeviceClaim } from '../models/V1alpha3DeviceClaim.js';\nimport { V1alpha3DeviceClaimConfiguration } from '../models/V1alpha3DeviceClaimConfiguration.js';\nimport { V1alpha3DeviceClass } from '../models/V1alpha3DeviceClass.js';\nimport { V1alpha3DeviceClassConfiguration } from '../models/V1alpha3DeviceClassConfiguration.js';\nimport { V1alpha3DeviceClassList } from '../models/V1alpha3DeviceClassList.js';\nimport { V1alpha3DeviceClassSpec } from '../models/V1alpha3DeviceClassSpec.js';\nimport { V1alpha3DeviceConstraint } from '../models/V1alpha3DeviceConstraint.js';\nimport { V1alpha3DeviceCounterConsumption } from '../models/V1alpha3DeviceCounterConsumption.js';\nimport { V1alpha3DeviceRequest } from '../models/V1alpha3DeviceRequest.js';\nimport { V1alpha3DeviceRequestAllocationResult } from '../models/V1alpha3DeviceRequestAllocationResult.js';\nimport { V1alpha3DeviceSelector } from '../models/V1alpha3DeviceSelector.js';\nimport { V1alpha3DeviceSubRequest } from '../models/V1alpha3DeviceSubRequest.js';\nimport { V1alpha3DeviceTaint } from '../models/V1alpha3DeviceTaint.js';\nimport { V1alpha3DeviceTaintRule } from '../models/V1alpha3DeviceTaintRule.js';\nimport { V1alpha3DeviceTaintRuleList } from '../models/V1alpha3DeviceTaintRuleList.js';\nimport { V1alpha3DeviceTaintRuleSpec } from '../models/V1alpha3DeviceTaintRuleSpec.js';\nimport { V1alpha3DeviceTaintSelector } from '../models/V1alpha3DeviceTaintSelector.js';\nimport { V1alpha3DeviceToleration } from '../models/V1alpha3DeviceToleration.js';\nimport { V1alpha3NetworkDeviceData } from '../models/V1alpha3NetworkDeviceData.js';\nimport { V1alpha3OpaqueDeviceConfiguration } from '../models/V1alpha3OpaqueDeviceConfiguration.js';\nimport { V1alpha3ResourceClaim } from '../models/V1alpha3ResourceClaim.js';\nimport { V1alpha3ResourceClaimConsumerReference } from '../models/V1alpha3ResourceClaimConsumerReference.js';\nimport { V1alpha3ResourceClaimList } from '../models/V1alpha3ResourceClaimList.js';\nimport { V1alpha3ResourceClaimSpec } from '../models/V1alpha3ResourceClaimSpec.js';\nimport { V1alpha3ResourceClaimStatus } from '../models/V1alpha3ResourceClaimStatus.js';\nimport { V1alpha3ResourceClaimTemplate } from '../models/V1alpha3ResourceClaimTemplate.js';\nimport { V1alpha3ResourceClaimTemplateList } from '../models/V1alpha3ResourceClaimTemplateList.js';\nimport { V1alpha3ResourceClaimTemplateSpec } from '../models/V1alpha3ResourceClaimTemplateSpec.js';\nimport { V1alpha3ResourcePool } from '../models/V1alpha3ResourcePool.js';\nimport { V1alpha3ResourceSlice } from '../models/V1alpha3ResourceSlice.js';\nimport { V1alpha3ResourceSliceList } from '../models/V1alpha3ResourceSliceList.js';\nimport { V1alpha3ResourceSliceSpec } from '../models/V1alpha3ResourceSliceSpec.js';\nimport { V1beta1AllocatedDeviceStatus } from '../models/V1beta1AllocatedDeviceStatus.js';\nimport { V1beta1AllocationResult } from '../models/V1beta1AllocationResult.js';\nimport { V1beta1AuditAnnotation } from '../models/V1beta1AuditAnnotation.js';\nimport { V1beta1BasicDevice } from '../models/V1beta1BasicDevice.js';\nimport { V1beta1CELDeviceSelector } from '../models/V1beta1CELDeviceSelector.js';\nimport { V1beta1ClusterTrustBundle } from '../models/V1beta1ClusterTrustBundle.js';\nimport { V1beta1ClusterTrustBundleList } from '../models/V1beta1ClusterTrustBundleList.js';\nimport { V1beta1ClusterTrustBundleSpec } from '../models/V1beta1ClusterTrustBundleSpec.js';\nimport { V1beta1Counter } from '../models/V1beta1Counter.js';\nimport { V1beta1CounterSet } from '../models/V1beta1CounterSet.js';\nimport { V1beta1Device } from '../models/V1beta1Device.js';\nimport { V1beta1DeviceAllocationConfiguration } from '../models/V1beta1DeviceAllocationConfiguration.js';\nimport { V1beta1DeviceAllocationResult } from '../models/V1beta1DeviceAllocationResult.js';\nimport { V1beta1DeviceAttribute } from '../models/V1beta1DeviceAttribute.js';\nimport { V1beta1DeviceCapacity } from '../models/V1beta1DeviceCapacity.js';\nimport { V1beta1DeviceClaim } from '../models/V1beta1DeviceClaim.js';\nimport { V1beta1DeviceClaimConfiguration } from '../models/V1beta1DeviceClaimConfiguration.js';\nimport { V1beta1DeviceClass } from '../models/V1beta1DeviceClass.js';\nimport { V1beta1DeviceClassConfiguration } from '../models/V1beta1DeviceClassConfiguration.js';\nimport { V1beta1DeviceClassList } from '../models/V1beta1DeviceClassList.js';\nimport { V1beta1DeviceClassSpec } from '../models/V1beta1DeviceClassSpec.js';\nimport { V1beta1DeviceConstraint } from '../models/V1beta1DeviceConstraint.js';\nimport { V1beta1DeviceCounterConsumption } from '../models/V1beta1DeviceCounterConsumption.js';\nimport { V1beta1DeviceRequest } from '../models/V1beta1DeviceRequest.js';\nimport { V1beta1DeviceRequestAllocationResult } from '../models/V1beta1DeviceRequestAllocationResult.js';\nimport { V1beta1DeviceSelector } from '../models/V1beta1DeviceSelector.js';\nimport { V1beta1DeviceSubRequest } from '../models/V1beta1DeviceSubRequest.js';\nimport { V1beta1DeviceTaint } from '../models/V1beta1DeviceTaint.js';\nimport { V1beta1DeviceToleration } from '../models/V1beta1DeviceToleration.js';\nimport { V1beta1ExpressionWarning } from '../models/V1beta1ExpressionWarning.js';\nimport { V1beta1IPAddress } from '../models/V1beta1IPAddress.js';\nimport { V1beta1IPAddressList } from '../models/V1beta1IPAddressList.js';\nimport { V1beta1IPAddressSpec } from '../models/V1beta1IPAddressSpec.js';\nimport { V1beta1LeaseCandidate } from '../models/V1beta1LeaseCandidate.js';\nimport { V1beta1LeaseCandidateList } from '../models/V1beta1LeaseCandidateList.js';\nimport { V1beta1LeaseCandidateSpec } from '../models/V1beta1LeaseCandidateSpec.js';\nimport { V1beta1MatchCondition } from '../models/V1beta1MatchCondition.js';\nimport { V1beta1MatchResources } from '../models/V1beta1MatchResources.js';\nimport { V1beta1NamedRuleWithOperations } from '../models/V1beta1NamedRuleWithOperations.js';\nimport { V1beta1NetworkDeviceData } from '../models/V1beta1NetworkDeviceData.js';\nimport { V1beta1OpaqueDeviceConfiguration } from '../models/V1beta1OpaqueDeviceConfiguration.js';\nimport { V1beta1ParamKind } from '../models/V1beta1ParamKind.js';\nimport { V1beta1ParamRef } from '../models/V1beta1ParamRef.js';\nimport { V1beta1ParentReference } from '../models/V1beta1ParentReference.js';\nimport { V1beta1ResourceClaim } from '../models/V1beta1ResourceClaim.js';\nimport { V1beta1ResourceClaimConsumerReference } from '../models/V1beta1ResourceClaimConsumerReference.js';\nimport { V1beta1ResourceClaimList } from '../models/V1beta1ResourceClaimList.js';\nimport { V1beta1ResourceClaimSpec } from '../models/V1beta1ResourceClaimSpec.js';\nimport { V1beta1ResourceClaimStatus } from '../models/V1beta1ResourceClaimStatus.js';\nimport { V1beta1ResourceClaimTemplate } from '../models/V1beta1ResourceClaimTemplate.js';\nimport { V1beta1ResourceClaimTemplateList } from '../models/V1beta1ResourceClaimTemplateList.js';\nimport { V1beta1ResourceClaimTemplateSpec } from '../models/V1beta1ResourceClaimTemplateSpec.js';\nimport { V1beta1ResourcePool } from '../models/V1beta1ResourcePool.js';\nimport { V1beta1ResourceSlice } from '../models/V1beta1ResourceSlice.js';\nimport { V1beta1ResourceSliceList } from '../models/V1beta1ResourceSliceList.js';\nimport { V1beta1ResourceSliceSpec } from '../models/V1beta1ResourceSliceSpec.js';\nimport { V1beta1ServiceCIDR } from '../models/V1beta1ServiceCIDR.js';\nimport { V1beta1ServiceCIDRList } from '../models/V1beta1ServiceCIDRList.js';\nimport { V1beta1ServiceCIDRSpec } from '../models/V1beta1ServiceCIDRSpec.js';\nimport { V1beta1ServiceCIDRStatus } from '../models/V1beta1ServiceCIDRStatus.js';\nimport { V1beta1TypeChecking } from '../models/V1beta1TypeChecking.js';\nimport { V1beta1ValidatingAdmissionPolicy } from '../models/V1beta1ValidatingAdmissionPolicy.js';\nimport { V1beta1ValidatingAdmissionPolicyBinding } from '../models/V1beta1ValidatingAdmissionPolicyBinding.js';\nimport { V1beta1ValidatingAdmissionPolicyBindingList } from '../models/V1beta1ValidatingAdmissionPolicyBindingList.js';\nimport { V1beta1ValidatingAdmissionPolicyBindingSpec } from '../models/V1beta1ValidatingAdmissionPolicyBindingSpec.js';\nimport { V1beta1ValidatingAdmissionPolicyList } from '../models/V1beta1ValidatingAdmissionPolicyList.js';\nimport { V1beta1ValidatingAdmissionPolicySpec } from '../models/V1beta1ValidatingAdmissionPolicySpec.js';\nimport { V1beta1ValidatingAdmissionPolicyStatus } from '../models/V1beta1ValidatingAdmissionPolicyStatus.js';\nimport { V1beta1Validation } from '../models/V1beta1Validation.js';\nimport { V1beta1Variable } from '../models/V1beta1Variable.js';\nimport { V1beta1VolumeAttributesClass } from '../models/V1beta1VolumeAttributesClass.js';\nimport { V1beta1VolumeAttributesClassList } from '../models/V1beta1VolumeAttributesClassList.js';\nimport { V1beta2AllocatedDeviceStatus } from '../models/V1beta2AllocatedDeviceStatus.js';\nimport { V1beta2AllocationResult } from '../models/V1beta2AllocationResult.js';\nimport { V1beta2CELDeviceSelector } from '../models/V1beta2CELDeviceSelector.js';\nimport { V1beta2Counter } from '../models/V1beta2Counter.js';\nimport { V1beta2CounterSet } from '../models/V1beta2CounterSet.js';\nimport { V1beta2Device } from '../models/V1beta2Device.js';\nimport { V1beta2DeviceAllocationConfiguration } from '../models/V1beta2DeviceAllocationConfiguration.js';\nimport { V1beta2DeviceAllocationResult } from '../models/V1beta2DeviceAllocationResult.js';\nimport { V1beta2DeviceAttribute } from '../models/V1beta2DeviceAttribute.js';\nimport { V1beta2DeviceCapacity } from '../models/V1beta2DeviceCapacity.js';\nimport { V1beta2DeviceClaim } from '../models/V1beta2DeviceClaim.js';\nimport { V1beta2DeviceClaimConfiguration } from '../models/V1beta2DeviceClaimConfiguration.js';\nimport { V1beta2DeviceClass } from '../models/V1beta2DeviceClass.js';\nimport { V1beta2DeviceClassConfiguration } from '../models/V1beta2DeviceClassConfiguration.js';\nimport { V1beta2DeviceClassList } from '../models/V1beta2DeviceClassList.js';\nimport { V1beta2DeviceClassSpec } from '../models/V1beta2DeviceClassSpec.js';\nimport { V1beta2DeviceConstraint } from '../models/V1beta2DeviceConstraint.js';\nimport { V1beta2DeviceCounterConsumption } from '../models/V1beta2DeviceCounterConsumption.js';\nimport { V1beta2DeviceRequest } from '../models/V1beta2DeviceRequest.js';\nimport { V1beta2DeviceRequestAllocationResult } from '../models/V1beta2DeviceRequestAllocationResult.js';\nimport { V1beta2DeviceSelector } from '../models/V1beta2DeviceSelector.js';\nimport { V1beta2DeviceSubRequest } from '../models/V1beta2DeviceSubRequest.js';\nimport { V1beta2DeviceTaint } from '../models/V1beta2DeviceTaint.js';\nimport { V1beta2DeviceToleration } from '../models/V1beta2DeviceToleration.js';\nimport { V1beta2ExactDeviceRequest } from '../models/V1beta2ExactDeviceRequest.js';\nimport { V1beta2NetworkDeviceData } from '../models/V1beta2NetworkDeviceData.js';\nimport { V1beta2OpaqueDeviceConfiguration } from '../models/V1beta2OpaqueDeviceConfiguration.js';\nimport { V1beta2ResourceClaim } from '../models/V1beta2ResourceClaim.js';\nimport { V1beta2ResourceClaimConsumerReference } from '../models/V1beta2ResourceClaimConsumerReference.js';\nimport { V1beta2ResourceClaimList } from '../models/V1beta2ResourceClaimList.js';\nimport { V1beta2ResourceClaimSpec } from '../models/V1beta2ResourceClaimSpec.js';\nimport { V1beta2ResourceClaimStatus } from '../models/V1beta2ResourceClaimStatus.js';\nimport { V1beta2ResourceClaimTemplate } from '../models/V1beta2ResourceClaimTemplate.js';\nimport { V1beta2ResourceClaimTemplateList } from '../models/V1beta2ResourceClaimTemplateList.js';\nimport { V1beta2ResourceClaimTemplateSpec } from '../models/V1beta2ResourceClaimTemplateSpec.js';\nimport { V1beta2ResourcePool } from '../models/V1beta2ResourcePool.js';\nimport { V1beta2ResourceSlice } from '../models/V1beta2ResourceSlice.js';\nimport { V1beta2ResourceSliceList } from '../models/V1beta2ResourceSliceList.js';\nimport { V1beta2ResourceSliceSpec } from '../models/V1beta2ResourceSliceSpec.js';\nimport { V2ContainerResourceMetricSource } from '../models/V2ContainerResourceMetricSource.js';\nimport { V2ContainerResourceMetricStatus } from '../models/V2ContainerResourceMetricStatus.js';\nimport { V2CrossVersionObjectReference } from '../models/V2CrossVersionObjectReference.js';\nimport { V2ExternalMetricSource } from '../models/V2ExternalMetricSource.js';\nimport { V2ExternalMetricStatus } from '../models/V2ExternalMetricStatus.js';\nimport { V2HPAScalingPolicy } from '../models/V2HPAScalingPolicy.js';\nimport { V2HPAScalingRules } from '../models/V2HPAScalingRules.js';\nimport { V2HorizontalPodAutoscaler } from '../models/V2HorizontalPodAutoscaler.js';\nimport { V2HorizontalPodAutoscalerBehavior } from '../models/V2HorizontalPodAutoscalerBehavior.js';\nimport { V2HorizontalPodAutoscalerCondition } from '../models/V2HorizontalPodAutoscalerCondition.js';\nimport { V2HorizontalPodAutoscalerList } from '../models/V2HorizontalPodAutoscalerList.js';\nimport { V2HorizontalPodAutoscalerSpec } from '../models/V2HorizontalPodAutoscalerSpec.js';\nimport { V2HorizontalPodAutoscalerStatus } from '../models/V2HorizontalPodAutoscalerStatus.js';\nimport { V2MetricIdentifier } from '../models/V2MetricIdentifier.js';\nimport { V2MetricSpec } from '../models/V2MetricSpec.js';\nimport { V2MetricStatus } from '../models/V2MetricStatus.js';\nimport { V2MetricTarget } from '../models/V2MetricTarget.js';\nimport { V2MetricValueStatus } from '../models/V2MetricValueStatus.js';\nimport { V2ObjectMetricSource } from '../models/V2ObjectMetricSource.js';\nimport { V2ObjectMetricStatus } from '../models/V2ObjectMetricStatus.js';\nimport { V2PodsMetricSource } from '../models/V2PodsMetricSource.js';\nimport { V2PodsMetricStatus } from '../models/V2PodsMetricStatus.js';\nimport { V2ResourceMetricSource } from '../models/V2ResourceMetricSource.js';\nimport { V2ResourceMetricStatus } from '../models/V2ResourceMetricStatus.js';\nimport { VersionInfo } from '../models/VersionInfo.js';\n/* tslint:disable:no-unused-variable */\nlet primitives = [\n \"string\",\n \"boolean\",\n \"double\",\n \"integer\",\n \"long\",\n \"float\",\n \"number\",\n \"any\"\n];\nlet enumsMap = new Set([]);\nlet typeMap = {\n \"AdmissionregistrationV1ServiceReference\": AdmissionregistrationV1ServiceReference,\n \"AdmissionregistrationV1WebhookClientConfig\": AdmissionregistrationV1WebhookClientConfig,\n \"ApiextensionsV1ServiceReference\": ApiextensionsV1ServiceReference,\n \"ApiextensionsV1WebhookClientConfig\": ApiextensionsV1WebhookClientConfig,\n \"ApiregistrationV1ServiceReference\": ApiregistrationV1ServiceReference,\n \"AuthenticationV1TokenRequest\": AuthenticationV1TokenRequest,\n \"CoreV1EndpointPort\": CoreV1EndpointPort,\n \"CoreV1Event\": CoreV1Event,\n \"CoreV1EventList\": CoreV1EventList,\n \"CoreV1EventSeries\": CoreV1EventSeries,\n \"DiscoveryV1EndpointPort\": DiscoveryV1EndpointPort,\n \"EventsV1Event\": EventsV1Event,\n \"EventsV1EventList\": EventsV1EventList,\n \"EventsV1EventSeries\": EventsV1EventSeries,\n \"FlowcontrolV1Subject\": FlowcontrolV1Subject,\n \"RbacV1Subject\": RbacV1Subject,\n \"StorageV1TokenRequest\": StorageV1TokenRequest,\n \"V1APIGroup\": V1APIGroup,\n \"V1APIGroupList\": V1APIGroupList,\n \"V1APIResource\": V1APIResource,\n \"V1APIResourceList\": V1APIResourceList,\n \"V1APIService\": V1APIService,\n \"V1APIServiceCondition\": V1APIServiceCondition,\n \"V1APIServiceList\": V1APIServiceList,\n \"V1APIServiceSpec\": V1APIServiceSpec,\n \"V1APIServiceStatus\": V1APIServiceStatus,\n \"V1APIVersions\": V1APIVersions,\n \"V1AWSElasticBlockStoreVolumeSource\": V1AWSElasticBlockStoreVolumeSource,\n \"V1Affinity\": V1Affinity,\n \"V1AggregationRule\": V1AggregationRule,\n \"V1AppArmorProfile\": V1AppArmorProfile,\n \"V1AttachedVolume\": V1AttachedVolume,\n \"V1AuditAnnotation\": V1AuditAnnotation,\n \"V1AzureDiskVolumeSource\": V1AzureDiskVolumeSource,\n \"V1AzureFilePersistentVolumeSource\": V1AzureFilePersistentVolumeSource,\n \"V1AzureFileVolumeSource\": V1AzureFileVolumeSource,\n \"V1Binding\": V1Binding,\n \"V1BoundObjectReference\": V1BoundObjectReference,\n \"V1CSIDriver\": V1CSIDriver,\n \"V1CSIDriverList\": V1CSIDriverList,\n \"V1CSIDriverSpec\": V1CSIDriverSpec,\n \"V1CSINode\": V1CSINode,\n \"V1CSINodeDriver\": V1CSINodeDriver,\n \"V1CSINodeList\": V1CSINodeList,\n \"V1CSINodeSpec\": V1CSINodeSpec,\n \"V1CSIPersistentVolumeSource\": V1CSIPersistentVolumeSource,\n \"V1CSIStorageCapacity\": V1CSIStorageCapacity,\n \"V1CSIStorageCapacityList\": V1CSIStorageCapacityList,\n \"V1CSIVolumeSource\": V1CSIVolumeSource,\n \"V1Capabilities\": V1Capabilities,\n \"V1CephFSPersistentVolumeSource\": V1CephFSPersistentVolumeSource,\n \"V1CephFSVolumeSource\": V1CephFSVolumeSource,\n \"V1CertificateSigningRequest\": V1CertificateSigningRequest,\n \"V1CertificateSigningRequestCondition\": V1CertificateSigningRequestCondition,\n \"V1CertificateSigningRequestList\": V1CertificateSigningRequestList,\n \"V1CertificateSigningRequestSpec\": V1CertificateSigningRequestSpec,\n \"V1CertificateSigningRequestStatus\": V1CertificateSigningRequestStatus,\n \"V1CinderPersistentVolumeSource\": V1CinderPersistentVolumeSource,\n \"V1CinderVolumeSource\": V1CinderVolumeSource,\n \"V1ClientIPConfig\": V1ClientIPConfig,\n \"V1ClusterRole\": V1ClusterRole,\n \"V1ClusterRoleBinding\": V1ClusterRoleBinding,\n \"V1ClusterRoleBindingList\": V1ClusterRoleBindingList,\n \"V1ClusterRoleList\": V1ClusterRoleList,\n \"V1ClusterTrustBundleProjection\": V1ClusterTrustBundleProjection,\n \"V1ComponentCondition\": V1ComponentCondition,\n \"V1ComponentStatus\": V1ComponentStatus,\n \"V1ComponentStatusList\": V1ComponentStatusList,\n \"V1Condition\": V1Condition,\n \"V1ConfigMap\": V1ConfigMap,\n \"V1ConfigMapEnvSource\": V1ConfigMapEnvSource,\n \"V1ConfigMapKeySelector\": V1ConfigMapKeySelector,\n \"V1ConfigMapList\": V1ConfigMapList,\n \"V1ConfigMapNodeConfigSource\": V1ConfigMapNodeConfigSource,\n \"V1ConfigMapProjection\": V1ConfigMapProjection,\n \"V1ConfigMapVolumeSource\": V1ConfigMapVolumeSource,\n \"V1Container\": V1Container,\n \"V1ContainerImage\": V1ContainerImage,\n \"V1ContainerPort\": V1ContainerPort,\n \"V1ContainerResizePolicy\": V1ContainerResizePolicy,\n \"V1ContainerState\": V1ContainerState,\n \"V1ContainerStateRunning\": V1ContainerStateRunning,\n \"V1ContainerStateTerminated\": V1ContainerStateTerminated,\n \"V1ContainerStateWaiting\": V1ContainerStateWaiting,\n \"V1ContainerStatus\": V1ContainerStatus,\n \"V1ContainerUser\": V1ContainerUser,\n \"V1ControllerRevision\": V1ControllerRevision,\n \"V1ControllerRevisionList\": V1ControllerRevisionList,\n \"V1CronJob\": V1CronJob,\n \"V1CronJobList\": V1CronJobList,\n \"V1CronJobSpec\": V1CronJobSpec,\n \"V1CronJobStatus\": V1CronJobStatus,\n \"V1CrossVersionObjectReference\": V1CrossVersionObjectReference,\n \"V1CustomResourceColumnDefinition\": V1CustomResourceColumnDefinition,\n \"V1CustomResourceConversion\": V1CustomResourceConversion,\n \"V1CustomResourceDefinition\": V1CustomResourceDefinition,\n \"V1CustomResourceDefinitionCondition\": V1CustomResourceDefinitionCondition,\n \"V1CustomResourceDefinitionList\": V1CustomResourceDefinitionList,\n \"V1CustomResourceDefinitionNames\": V1CustomResourceDefinitionNames,\n \"V1CustomResourceDefinitionSpec\": V1CustomResourceDefinitionSpec,\n \"V1CustomResourceDefinitionStatus\": V1CustomResourceDefinitionStatus,\n \"V1CustomResourceDefinitionVersion\": V1CustomResourceDefinitionVersion,\n \"V1CustomResourceSubresourceScale\": V1CustomResourceSubresourceScale,\n \"V1CustomResourceSubresources\": V1CustomResourceSubresources,\n \"V1CustomResourceValidation\": V1CustomResourceValidation,\n \"V1DaemonEndpoint\": V1DaemonEndpoint,\n \"V1DaemonSet\": V1DaemonSet,\n \"V1DaemonSetCondition\": V1DaemonSetCondition,\n \"V1DaemonSetList\": V1DaemonSetList,\n \"V1DaemonSetSpec\": V1DaemonSetSpec,\n \"V1DaemonSetStatus\": V1DaemonSetStatus,\n \"V1DaemonSetUpdateStrategy\": V1DaemonSetUpdateStrategy,\n \"V1DeleteOptions\": V1DeleteOptions,\n \"V1Deployment\": V1Deployment,\n \"V1DeploymentCondition\": V1DeploymentCondition,\n \"V1DeploymentList\": V1DeploymentList,\n \"V1DeploymentSpec\": V1DeploymentSpec,\n \"V1DeploymentStatus\": V1DeploymentStatus,\n \"V1DeploymentStrategy\": V1DeploymentStrategy,\n \"V1DownwardAPIProjection\": V1DownwardAPIProjection,\n \"V1DownwardAPIVolumeFile\": V1DownwardAPIVolumeFile,\n \"V1DownwardAPIVolumeSource\": V1DownwardAPIVolumeSource,\n \"V1EmptyDirVolumeSource\": V1EmptyDirVolumeSource,\n \"V1Endpoint\": V1Endpoint,\n \"V1EndpointAddress\": V1EndpointAddress,\n \"V1EndpointConditions\": V1EndpointConditions,\n \"V1EndpointHints\": V1EndpointHints,\n \"V1EndpointSlice\": V1EndpointSlice,\n \"V1EndpointSliceList\": V1EndpointSliceList,\n \"V1EndpointSubset\": V1EndpointSubset,\n \"V1Endpoints\": V1Endpoints,\n \"V1EndpointsList\": V1EndpointsList,\n \"V1EnvFromSource\": V1EnvFromSource,\n \"V1EnvVar\": V1EnvVar,\n \"V1EnvVarSource\": V1EnvVarSource,\n \"V1EphemeralContainer\": V1EphemeralContainer,\n \"V1EphemeralVolumeSource\": V1EphemeralVolumeSource,\n \"V1EventSource\": V1EventSource,\n \"V1Eviction\": V1Eviction,\n \"V1ExecAction\": V1ExecAction,\n \"V1ExemptPriorityLevelConfiguration\": V1ExemptPriorityLevelConfiguration,\n \"V1ExpressionWarning\": V1ExpressionWarning,\n \"V1ExternalDocumentation\": V1ExternalDocumentation,\n \"V1FCVolumeSource\": V1FCVolumeSource,\n \"V1FieldSelectorAttributes\": V1FieldSelectorAttributes,\n \"V1FieldSelectorRequirement\": V1FieldSelectorRequirement,\n \"V1FlexPersistentVolumeSource\": V1FlexPersistentVolumeSource,\n \"V1FlexVolumeSource\": V1FlexVolumeSource,\n \"V1FlockerVolumeSource\": V1FlockerVolumeSource,\n \"V1FlowDistinguisherMethod\": V1FlowDistinguisherMethod,\n \"V1FlowSchema\": V1FlowSchema,\n \"V1FlowSchemaCondition\": V1FlowSchemaCondition,\n \"V1FlowSchemaList\": V1FlowSchemaList,\n \"V1FlowSchemaSpec\": V1FlowSchemaSpec,\n \"V1FlowSchemaStatus\": V1FlowSchemaStatus,\n \"V1ForNode\": V1ForNode,\n \"V1ForZone\": V1ForZone,\n \"V1GCEPersistentDiskVolumeSource\": V1GCEPersistentDiskVolumeSource,\n \"V1GRPCAction\": V1GRPCAction,\n \"V1GitRepoVolumeSource\": V1GitRepoVolumeSource,\n \"V1GlusterfsPersistentVolumeSource\": V1GlusterfsPersistentVolumeSource,\n \"V1GlusterfsVolumeSource\": V1GlusterfsVolumeSource,\n \"V1GroupSubject\": V1GroupSubject,\n \"V1GroupVersionForDiscovery\": V1GroupVersionForDiscovery,\n \"V1HTTPGetAction\": V1HTTPGetAction,\n \"V1HTTPHeader\": V1HTTPHeader,\n \"V1HTTPIngressPath\": V1HTTPIngressPath,\n \"V1HTTPIngressRuleValue\": V1HTTPIngressRuleValue,\n \"V1HorizontalPodAutoscaler\": V1HorizontalPodAutoscaler,\n \"V1HorizontalPodAutoscalerList\": V1HorizontalPodAutoscalerList,\n \"V1HorizontalPodAutoscalerSpec\": V1HorizontalPodAutoscalerSpec,\n \"V1HorizontalPodAutoscalerStatus\": V1HorizontalPodAutoscalerStatus,\n \"V1HostAlias\": V1HostAlias,\n \"V1HostIP\": V1HostIP,\n \"V1HostPathVolumeSource\": V1HostPathVolumeSource,\n \"V1IPAddress\": V1IPAddress,\n \"V1IPAddressList\": V1IPAddressList,\n \"V1IPAddressSpec\": V1IPAddressSpec,\n \"V1IPBlock\": V1IPBlock,\n \"V1ISCSIPersistentVolumeSource\": V1ISCSIPersistentVolumeSource,\n \"V1ISCSIVolumeSource\": V1ISCSIVolumeSource,\n \"V1ImageVolumeSource\": V1ImageVolumeSource,\n \"V1Ingress\": V1Ingress,\n \"V1IngressBackend\": V1IngressBackend,\n \"V1IngressClass\": V1IngressClass,\n \"V1IngressClassList\": V1IngressClassList,\n \"V1IngressClassParametersReference\": V1IngressClassParametersReference,\n \"V1IngressClassSpec\": V1IngressClassSpec,\n \"V1IngressList\": V1IngressList,\n \"V1IngressLoadBalancerIngress\": V1IngressLoadBalancerIngress,\n \"V1IngressLoadBalancerStatus\": V1IngressLoadBalancerStatus,\n \"V1IngressPortStatus\": V1IngressPortStatus,\n \"V1IngressRule\": V1IngressRule,\n \"V1IngressServiceBackend\": V1IngressServiceBackend,\n \"V1IngressSpec\": V1IngressSpec,\n \"V1IngressStatus\": V1IngressStatus,\n \"V1IngressTLS\": V1IngressTLS,\n \"V1JSONSchemaProps\": V1JSONSchemaProps,\n \"V1Job\": V1Job,\n \"V1JobCondition\": V1JobCondition,\n \"V1JobList\": V1JobList,\n \"V1JobSpec\": V1JobSpec,\n \"V1JobStatus\": V1JobStatus,\n \"V1JobTemplateSpec\": V1JobTemplateSpec,\n \"V1KeyToPath\": V1KeyToPath,\n \"V1LabelSelector\": V1LabelSelector,\n \"V1LabelSelectorAttributes\": V1LabelSelectorAttributes,\n \"V1LabelSelectorRequirement\": V1LabelSelectorRequirement,\n \"V1Lease\": V1Lease,\n \"V1LeaseList\": V1LeaseList,\n \"V1LeaseSpec\": V1LeaseSpec,\n \"V1Lifecycle\": V1Lifecycle,\n \"V1LifecycleHandler\": V1LifecycleHandler,\n \"V1LimitRange\": V1LimitRange,\n \"V1LimitRangeItem\": V1LimitRangeItem,\n \"V1LimitRangeList\": V1LimitRangeList,\n \"V1LimitRangeSpec\": V1LimitRangeSpec,\n \"V1LimitResponse\": V1LimitResponse,\n \"V1LimitedPriorityLevelConfiguration\": V1LimitedPriorityLevelConfiguration,\n \"V1LinuxContainerUser\": V1LinuxContainerUser,\n \"V1ListMeta\": V1ListMeta,\n \"V1LoadBalancerIngress\": V1LoadBalancerIngress,\n \"V1LoadBalancerStatus\": V1LoadBalancerStatus,\n \"V1LocalObjectReference\": V1LocalObjectReference,\n \"V1LocalSubjectAccessReview\": V1LocalSubjectAccessReview,\n \"V1LocalVolumeSource\": V1LocalVolumeSource,\n \"V1ManagedFieldsEntry\": V1ManagedFieldsEntry,\n \"V1MatchCondition\": V1MatchCondition,\n \"V1MatchResources\": V1MatchResources,\n \"V1ModifyVolumeStatus\": V1ModifyVolumeStatus,\n \"V1MutatingWebhook\": V1MutatingWebhook,\n \"V1MutatingWebhookConfiguration\": V1MutatingWebhookConfiguration,\n \"V1MutatingWebhookConfigurationList\": V1MutatingWebhookConfigurationList,\n \"V1NFSVolumeSource\": V1NFSVolumeSource,\n \"V1NamedRuleWithOperations\": V1NamedRuleWithOperations,\n \"V1Namespace\": V1Namespace,\n \"V1NamespaceCondition\": V1NamespaceCondition,\n \"V1NamespaceList\": V1NamespaceList,\n \"V1NamespaceSpec\": V1NamespaceSpec,\n \"V1NamespaceStatus\": V1NamespaceStatus,\n \"V1NetworkPolicy\": V1NetworkPolicy,\n \"V1NetworkPolicyEgressRule\": V1NetworkPolicyEgressRule,\n \"V1NetworkPolicyIngressRule\": V1NetworkPolicyIngressRule,\n \"V1NetworkPolicyList\": V1NetworkPolicyList,\n \"V1NetworkPolicyPeer\": V1NetworkPolicyPeer,\n \"V1NetworkPolicyPort\": V1NetworkPolicyPort,\n \"V1NetworkPolicySpec\": V1NetworkPolicySpec,\n \"V1Node\": V1Node,\n \"V1NodeAddress\": V1NodeAddress,\n \"V1NodeAffinity\": V1NodeAffinity,\n \"V1NodeCondition\": V1NodeCondition,\n \"V1NodeConfigSource\": V1NodeConfigSource,\n \"V1NodeConfigStatus\": V1NodeConfigStatus,\n \"V1NodeDaemonEndpoints\": V1NodeDaemonEndpoints,\n \"V1NodeFeatures\": V1NodeFeatures,\n \"V1NodeList\": V1NodeList,\n \"V1NodeRuntimeHandler\": V1NodeRuntimeHandler,\n \"V1NodeRuntimeHandlerFeatures\": V1NodeRuntimeHandlerFeatures,\n \"V1NodeSelector\": V1NodeSelector,\n \"V1NodeSelectorRequirement\": V1NodeSelectorRequirement,\n \"V1NodeSelectorTerm\": V1NodeSelectorTerm,\n \"V1NodeSpec\": V1NodeSpec,\n \"V1NodeStatus\": V1NodeStatus,\n \"V1NodeSwapStatus\": V1NodeSwapStatus,\n \"V1NodeSystemInfo\": V1NodeSystemInfo,\n \"V1NonResourceAttributes\": V1NonResourceAttributes,\n \"V1NonResourcePolicyRule\": V1NonResourcePolicyRule,\n \"V1NonResourceRule\": V1NonResourceRule,\n \"V1ObjectFieldSelector\": V1ObjectFieldSelector,\n \"V1ObjectMeta\": V1ObjectMeta,\n \"V1ObjectReference\": V1ObjectReference,\n \"V1Overhead\": V1Overhead,\n \"V1OwnerReference\": V1OwnerReference,\n \"V1ParamKind\": V1ParamKind,\n \"V1ParamRef\": V1ParamRef,\n \"V1ParentReference\": V1ParentReference,\n \"V1PersistentVolume\": V1PersistentVolume,\n \"V1PersistentVolumeClaim\": V1PersistentVolumeClaim,\n \"V1PersistentVolumeClaimCondition\": V1PersistentVolumeClaimCondition,\n \"V1PersistentVolumeClaimList\": V1PersistentVolumeClaimList,\n \"V1PersistentVolumeClaimSpec\": V1PersistentVolumeClaimSpec,\n \"V1PersistentVolumeClaimStatus\": V1PersistentVolumeClaimStatus,\n \"V1PersistentVolumeClaimTemplate\": V1PersistentVolumeClaimTemplate,\n \"V1PersistentVolumeClaimVolumeSource\": V1PersistentVolumeClaimVolumeSource,\n \"V1PersistentVolumeList\": V1PersistentVolumeList,\n \"V1PersistentVolumeSpec\": V1PersistentVolumeSpec,\n \"V1PersistentVolumeStatus\": V1PersistentVolumeStatus,\n \"V1PhotonPersistentDiskVolumeSource\": V1PhotonPersistentDiskVolumeSource,\n \"V1Pod\": V1Pod,\n \"V1PodAffinity\": V1PodAffinity,\n \"V1PodAffinityTerm\": V1PodAffinityTerm,\n \"V1PodAntiAffinity\": V1PodAntiAffinity,\n \"V1PodCondition\": V1PodCondition,\n \"V1PodDNSConfig\": V1PodDNSConfig,\n \"V1PodDNSConfigOption\": V1PodDNSConfigOption,\n \"V1PodDisruptionBudget\": V1PodDisruptionBudget,\n \"V1PodDisruptionBudgetList\": V1PodDisruptionBudgetList,\n \"V1PodDisruptionBudgetSpec\": V1PodDisruptionBudgetSpec,\n \"V1PodDisruptionBudgetStatus\": V1PodDisruptionBudgetStatus,\n \"V1PodFailurePolicy\": V1PodFailurePolicy,\n \"V1PodFailurePolicyOnExitCodesRequirement\": V1PodFailurePolicyOnExitCodesRequirement,\n \"V1PodFailurePolicyOnPodConditionsPattern\": V1PodFailurePolicyOnPodConditionsPattern,\n \"V1PodFailurePolicyRule\": V1PodFailurePolicyRule,\n \"V1PodIP\": V1PodIP,\n \"V1PodList\": V1PodList,\n \"V1PodOS\": V1PodOS,\n \"V1PodReadinessGate\": V1PodReadinessGate,\n \"V1PodResourceClaim\": V1PodResourceClaim,\n \"V1PodResourceClaimStatus\": V1PodResourceClaimStatus,\n \"V1PodSchedulingGate\": V1PodSchedulingGate,\n \"V1PodSecurityContext\": V1PodSecurityContext,\n \"V1PodSpec\": V1PodSpec,\n \"V1PodStatus\": V1PodStatus,\n \"V1PodTemplate\": V1PodTemplate,\n \"V1PodTemplateList\": V1PodTemplateList,\n \"V1PodTemplateSpec\": V1PodTemplateSpec,\n \"V1PolicyRule\": V1PolicyRule,\n \"V1PolicyRulesWithSubjects\": V1PolicyRulesWithSubjects,\n \"V1PortStatus\": V1PortStatus,\n \"V1PortworxVolumeSource\": V1PortworxVolumeSource,\n \"V1Preconditions\": V1Preconditions,\n \"V1PreferredSchedulingTerm\": V1PreferredSchedulingTerm,\n \"V1PriorityClass\": V1PriorityClass,\n \"V1PriorityClassList\": V1PriorityClassList,\n \"V1PriorityLevelConfiguration\": V1PriorityLevelConfiguration,\n \"V1PriorityLevelConfigurationCondition\": V1PriorityLevelConfigurationCondition,\n \"V1PriorityLevelConfigurationList\": V1PriorityLevelConfigurationList,\n \"V1PriorityLevelConfigurationReference\": V1PriorityLevelConfigurationReference,\n \"V1PriorityLevelConfigurationSpec\": V1PriorityLevelConfigurationSpec,\n \"V1PriorityLevelConfigurationStatus\": V1PriorityLevelConfigurationStatus,\n \"V1Probe\": V1Probe,\n \"V1ProjectedVolumeSource\": V1ProjectedVolumeSource,\n \"V1QueuingConfiguration\": V1QueuingConfiguration,\n \"V1QuobyteVolumeSource\": V1QuobyteVolumeSource,\n \"V1RBDPersistentVolumeSource\": V1RBDPersistentVolumeSource,\n \"V1RBDVolumeSource\": V1RBDVolumeSource,\n \"V1ReplicaSet\": V1ReplicaSet,\n \"V1ReplicaSetCondition\": V1ReplicaSetCondition,\n \"V1ReplicaSetList\": V1ReplicaSetList,\n \"V1ReplicaSetSpec\": V1ReplicaSetSpec,\n \"V1ReplicaSetStatus\": V1ReplicaSetStatus,\n \"V1ReplicationController\": V1ReplicationController,\n \"V1ReplicationControllerCondition\": V1ReplicationControllerCondition,\n \"V1ReplicationControllerList\": V1ReplicationControllerList,\n \"V1ReplicationControllerSpec\": V1ReplicationControllerSpec,\n \"V1ReplicationControllerStatus\": V1ReplicationControllerStatus,\n \"V1ResourceAttributes\": V1ResourceAttributes,\n \"V1ResourceClaim\": V1ResourceClaim,\n \"V1ResourceFieldSelector\": V1ResourceFieldSelector,\n \"V1ResourceHealth\": V1ResourceHealth,\n \"V1ResourcePolicyRule\": V1ResourcePolicyRule,\n \"V1ResourceQuota\": V1ResourceQuota,\n \"V1ResourceQuotaList\": V1ResourceQuotaList,\n \"V1ResourceQuotaSpec\": V1ResourceQuotaSpec,\n \"V1ResourceQuotaStatus\": V1ResourceQuotaStatus,\n \"V1ResourceRequirements\": V1ResourceRequirements,\n \"V1ResourceRule\": V1ResourceRule,\n \"V1ResourceStatus\": V1ResourceStatus,\n \"V1Role\": V1Role,\n \"V1RoleBinding\": V1RoleBinding,\n \"V1RoleBindingList\": V1RoleBindingList,\n \"V1RoleList\": V1RoleList,\n \"V1RoleRef\": V1RoleRef,\n \"V1RollingUpdateDaemonSet\": V1RollingUpdateDaemonSet,\n \"V1RollingUpdateDeployment\": V1RollingUpdateDeployment,\n \"V1RollingUpdateStatefulSetStrategy\": V1RollingUpdateStatefulSetStrategy,\n \"V1RuleWithOperations\": V1RuleWithOperations,\n \"V1RuntimeClass\": V1RuntimeClass,\n \"V1RuntimeClassList\": V1RuntimeClassList,\n \"V1SELinuxOptions\": V1SELinuxOptions,\n \"V1Scale\": V1Scale,\n \"V1ScaleIOPersistentVolumeSource\": V1ScaleIOPersistentVolumeSource,\n \"V1ScaleIOVolumeSource\": V1ScaleIOVolumeSource,\n \"V1ScaleSpec\": V1ScaleSpec,\n \"V1ScaleStatus\": V1ScaleStatus,\n \"V1Scheduling\": V1Scheduling,\n \"V1ScopeSelector\": V1ScopeSelector,\n \"V1ScopedResourceSelectorRequirement\": V1ScopedResourceSelectorRequirement,\n \"V1SeccompProfile\": V1SeccompProfile,\n \"V1Secret\": V1Secret,\n \"V1SecretEnvSource\": V1SecretEnvSource,\n \"V1SecretKeySelector\": V1SecretKeySelector,\n \"V1SecretList\": V1SecretList,\n \"V1SecretProjection\": V1SecretProjection,\n \"V1SecretReference\": V1SecretReference,\n \"V1SecretVolumeSource\": V1SecretVolumeSource,\n \"V1SecurityContext\": V1SecurityContext,\n \"V1SelectableField\": V1SelectableField,\n \"V1SelfSubjectAccessReview\": V1SelfSubjectAccessReview,\n \"V1SelfSubjectAccessReviewSpec\": V1SelfSubjectAccessReviewSpec,\n \"V1SelfSubjectReview\": V1SelfSubjectReview,\n \"V1SelfSubjectReviewStatus\": V1SelfSubjectReviewStatus,\n \"V1SelfSubjectRulesReview\": V1SelfSubjectRulesReview,\n \"V1SelfSubjectRulesReviewSpec\": V1SelfSubjectRulesReviewSpec,\n \"V1ServerAddressByClientCIDR\": V1ServerAddressByClientCIDR,\n \"V1Service\": V1Service,\n \"V1ServiceAccount\": V1ServiceAccount,\n \"V1ServiceAccountList\": V1ServiceAccountList,\n \"V1ServiceAccountSubject\": V1ServiceAccountSubject,\n \"V1ServiceAccountTokenProjection\": V1ServiceAccountTokenProjection,\n \"V1ServiceBackendPort\": V1ServiceBackendPort,\n \"V1ServiceCIDR\": V1ServiceCIDR,\n \"V1ServiceCIDRList\": V1ServiceCIDRList,\n \"V1ServiceCIDRSpec\": V1ServiceCIDRSpec,\n \"V1ServiceCIDRStatus\": V1ServiceCIDRStatus,\n \"V1ServiceList\": V1ServiceList,\n \"V1ServicePort\": V1ServicePort,\n \"V1ServiceSpec\": V1ServiceSpec,\n \"V1ServiceStatus\": V1ServiceStatus,\n \"V1SessionAffinityConfig\": V1SessionAffinityConfig,\n \"V1SleepAction\": V1SleepAction,\n \"V1StatefulSet\": V1StatefulSet,\n \"V1StatefulSetCondition\": V1StatefulSetCondition,\n \"V1StatefulSetList\": V1StatefulSetList,\n \"V1StatefulSetOrdinals\": V1StatefulSetOrdinals,\n \"V1StatefulSetPersistentVolumeClaimRetentionPolicy\": V1StatefulSetPersistentVolumeClaimRetentionPolicy,\n \"V1StatefulSetSpec\": V1StatefulSetSpec,\n \"V1StatefulSetStatus\": V1StatefulSetStatus,\n \"V1StatefulSetUpdateStrategy\": V1StatefulSetUpdateStrategy,\n \"V1Status\": V1Status,\n \"V1StatusCause\": V1StatusCause,\n \"V1StatusDetails\": V1StatusDetails,\n \"V1StorageClass\": V1StorageClass,\n \"V1StorageClassList\": V1StorageClassList,\n \"V1StorageOSPersistentVolumeSource\": V1StorageOSPersistentVolumeSource,\n \"V1StorageOSVolumeSource\": V1StorageOSVolumeSource,\n \"V1SubjectAccessReview\": V1SubjectAccessReview,\n \"V1SubjectAccessReviewSpec\": V1SubjectAccessReviewSpec,\n \"V1SubjectAccessReviewStatus\": V1SubjectAccessReviewStatus,\n \"V1SubjectRulesReviewStatus\": V1SubjectRulesReviewStatus,\n \"V1SuccessPolicy\": V1SuccessPolicy,\n \"V1SuccessPolicyRule\": V1SuccessPolicyRule,\n \"V1Sysctl\": V1Sysctl,\n \"V1TCPSocketAction\": V1TCPSocketAction,\n \"V1Taint\": V1Taint,\n \"V1TokenRequestSpec\": V1TokenRequestSpec,\n \"V1TokenRequestStatus\": V1TokenRequestStatus,\n \"V1TokenReview\": V1TokenReview,\n \"V1TokenReviewSpec\": V1TokenReviewSpec,\n \"V1TokenReviewStatus\": V1TokenReviewStatus,\n \"V1Toleration\": V1Toleration,\n \"V1TopologySelectorLabelRequirement\": V1TopologySelectorLabelRequirement,\n \"V1TopologySelectorTerm\": V1TopologySelectorTerm,\n \"V1TopologySpreadConstraint\": V1TopologySpreadConstraint,\n \"V1TypeChecking\": V1TypeChecking,\n \"V1TypedLocalObjectReference\": V1TypedLocalObjectReference,\n \"V1TypedObjectReference\": V1TypedObjectReference,\n \"V1UncountedTerminatedPods\": V1UncountedTerminatedPods,\n \"V1UserInfo\": V1UserInfo,\n \"V1UserSubject\": V1UserSubject,\n \"V1ValidatingAdmissionPolicy\": V1ValidatingAdmissionPolicy,\n \"V1ValidatingAdmissionPolicyBinding\": V1ValidatingAdmissionPolicyBinding,\n \"V1ValidatingAdmissionPolicyBindingList\": V1ValidatingAdmissionPolicyBindingList,\n \"V1ValidatingAdmissionPolicyBindingSpec\": V1ValidatingAdmissionPolicyBindingSpec,\n \"V1ValidatingAdmissionPolicyList\": V1ValidatingAdmissionPolicyList,\n \"V1ValidatingAdmissionPolicySpec\": V1ValidatingAdmissionPolicySpec,\n \"V1ValidatingAdmissionPolicyStatus\": V1ValidatingAdmissionPolicyStatus,\n \"V1ValidatingWebhook\": V1ValidatingWebhook,\n \"V1ValidatingWebhookConfiguration\": V1ValidatingWebhookConfiguration,\n \"V1ValidatingWebhookConfigurationList\": V1ValidatingWebhookConfigurationList,\n \"V1Validation\": V1Validation,\n \"V1ValidationRule\": V1ValidationRule,\n \"V1Variable\": V1Variable,\n \"V1Volume\": V1Volume,\n \"V1VolumeAttachment\": V1VolumeAttachment,\n \"V1VolumeAttachmentList\": V1VolumeAttachmentList,\n \"V1VolumeAttachmentSource\": V1VolumeAttachmentSource,\n \"V1VolumeAttachmentSpec\": V1VolumeAttachmentSpec,\n \"V1VolumeAttachmentStatus\": V1VolumeAttachmentStatus,\n \"V1VolumeDevice\": V1VolumeDevice,\n \"V1VolumeError\": V1VolumeError,\n \"V1VolumeMount\": V1VolumeMount,\n \"V1VolumeMountStatus\": V1VolumeMountStatus,\n \"V1VolumeNodeAffinity\": V1VolumeNodeAffinity,\n \"V1VolumeNodeResources\": V1VolumeNodeResources,\n \"V1VolumeProjection\": V1VolumeProjection,\n \"V1VolumeResourceRequirements\": V1VolumeResourceRequirements,\n \"V1VsphereVirtualDiskVolumeSource\": V1VsphereVirtualDiskVolumeSource,\n \"V1WatchEvent\": V1WatchEvent,\n \"V1WebhookConversion\": V1WebhookConversion,\n \"V1WeightedPodAffinityTerm\": V1WeightedPodAffinityTerm,\n \"V1WindowsSecurityContextOptions\": V1WindowsSecurityContextOptions,\n \"V1alpha1ApplyConfiguration\": V1alpha1ApplyConfiguration,\n \"V1alpha1ClusterTrustBundle\": V1alpha1ClusterTrustBundle,\n \"V1alpha1ClusterTrustBundleList\": V1alpha1ClusterTrustBundleList,\n \"V1alpha1ClusterTrustBundleSpec\": V1alpha1ClusterTrustBundleSpec,\n \"V1alpha1GroupVersionResource\": V1alpha1GroupVersionResource,\n \"V1alpha1JSONPatch\": V1alpha1JSONPatch,\n \"V1alpha1MatchCondition\": V1alpha1MatchCondition,\n \"V1alpha1MatchResources\": V1alpha1MatchResources,\n \"V1alpha1MigrationCondition\": V1alpha1MigrationCondition,\n \"V1alpha1MutatingAdmissionPolicy\": V1alpha1MutatingAdmissionPolicy,\n \"V1alpha1MutatingAdmissionPolicyBinding\": V1alpha1MutatingAdmissionPolicyBinding,\n \"V1alpha1MutatingAdmissionPolicyBindingList\": V1alpha1MutatingAdmissionPolicyBindingList,\n \"V1alpha1MutatingAdmissionPolicyBindingSpec\": V1alpha1MutatingAdmissionPolicyBindingSpec,\n \"V1alpha1MutatingAdmissionPolicyList\": V1alpha1MutatingAdmissionPolicyList,\n \"V1alpha1MutatingAdmissionPolicySpec\": V1alpha1MutatingAdmissionPolicySpec,\n \"V1alpha1Mutation\": V1alpha1Mutation,\n \"V1alpha1NamedRuleWithOperations\": V1alpha1NamedRuleWithOperations,\n \"V1alpha1ParamKind\": V1alpha1ParamKind,\n \"V1alpha1ParamRef\": V1alpha1ParamRef,\n \"V1alpha1ServerStorageVersion\": V1alpha1ServerStorageVersion,\n \"V1alpha1StorageVersion\": V1alpha1StorageVersion,\n \"V1alpha1StorageVersionCondition\": V1alpha1StorageVersionCondition,\n \"V1alpha1StorageVersionList\": V1alpha1StorageVersionList,\n \"V1alpha1StorageVersionMigration\": V1alpha1StorageVersionMigration,\n \"V1alpha1StorageVersionMigrationList\": V1alpha1StorageVersionMigrationList,\n \"V1alpha1StorageVersionMigrationSpec\": V1alpha1StorageVersionMigrationSpec,\n \"V1alpha1StorageVersionMigrationStatus\": V1alpha1StorageVersionMigrationStatus,\n \"V1alpha1StorageVersionStatus\": V1alpha1StorageVersionStatus,\n \"V1alpha1Variable\": V1alpha1Variable,\n \"V1alpha1VolumeAttributesClass\": V1alpha1VolumeAttributesClass,\n \"V1alpha1VolumeAttributesClassList\": V1alpha1VolumeAttributesClassList,\n \"V1alpha2LeaseCandidate\": V1alpha2LeaseCandidate,\n \"V1alpha2LeaseCandidateList\": V1alpha2LeaseCandidateList,\n \"V1alpha2LeaseCandidateSpec\": V1alpha2LeaseCandidateSpec,\n \"V1alpha3AllocatedDeviceStatus\": V1alpha3AllocatedDeviceStatus,\n \"V1alpha3AllocationResult\": V1alpha3AllocationResult,\n \"V1alpha3BasicDevice\": V1alpha3BasicDevice,\n \"V1alpha3CELDeviceSelector\": V1alpha3CELDeviceSelector,\n \"V1alpha3Counter\": V1alpha3Counter,\n \"V1alpha3CounterSet\": V1alpha3CounterSet,\n \"V1alpha3Device\": V1alpha3Device,\n \"V1alpha3DeviceAllocationConfiguration\": V1alpha3DeviceAllocationConfiguration,\n \"V1alpha3DeviceAllocationResult\": V1alpha3DeviceAllocationResult,\n \"V1alpha3DeviceAttribute\": V1alpha3DeviceAttribute,\n \"V1alpha3DeviceClaim\": V1alpha3DeviceClaim,\n \"V1alpha3DeviceClaimConfiguration\": V1alpha3DeviceClaimConfiguration,\n \"V1alpha3DeviceClass\": V1alpha3DeviceClass,\n \"V1alpha3DeviceClassConfiguration\": V1alpha3DeviceClassConfiguration,\n \"V1alpha3DeviceClassList\": V1alpha3DeviceClassList,\n \"V1alpha3DeviceClassSpec\": V1alpha3DeviceClassSpec,\n \"V1alpha3DeviceConstraint\": V1alpha3DeviceConstraint,\n \"V1alpha3DeviceCounterConsumption\": V1alpha3DeviceCounterConsumption,\n \"V1alpha3DeviceRequest\": V1alpha3DeviceRequest,\n \"V1alpha3DeviceRequestAllocationResult\": V1alpha3DeviceRequestAllocationResult,\n \"V1alpha3DeviceSelector\": V1alpha3DeviceSelector,\n \"V1alpha3DeviceSubRequest\": V1alpha3DeviceSubRequest,\n \"V1alpha3DeviceTaint\": V1alpha3DeviceTaint,\n \"V1alpha3DeviceTaintRule\": V1alpha3DeviceTaintRule,\n \"V1alpha3DeviceTaintRuleList\": V1alpha3DeviceTaintRuleList,\n \"V1alpha3DeviceTaintRuleSpec\": V1alpha3DeviceTaintRuleSpec,\n \"V1alpha3DeviceTaintSelector\": V1alpha3DeviceTaintSelector,\n \"V1alpha3DeviceToleration\": V1alpha3DeviceToleration,\n \"V1alpha3NetworkDeviceData\": V1alpha3NetworkDeviceData,\n \"V1alpha3OpaqueDeviceConfiguration\": V1alpha3OpaqueDeviceConfiguration,\n \"V1alpha3ResourceClaim\": V1alpha3ResourceClaim,\n \"V1alpha3ResourceClaimConsumerReference\": V1alpha3ResourceClaimConsumerReference,\n \"V1alpha3ResourceClaimList\": V1alpha3ResourceClaimList,\n \"V1alpha3ResourceClaimSpec\": V1alpha3ResourceClaimSpec,\n \"V1alpha3ResourceClaimStatus\": V1alpha3ResourceClaimStatus,\n \"V1alpha3ResourceClaimTemplate\": V1alpha3ResourceClaimTemplate,\n \"V1alpha3ResourceClaimTemplateList\": V1alpha3ResourceClaimTemplateList,\n \"V1alpha3ResourceClaimTemplateSpec\": V1alpha3ResourceClaimTemplateSpec,\n \"V1alpha3ResourcePool\": V1alpha3ResourcePool,\n \"V1alpha3ResourceSlice\": V1alpha3ResourceSlice,\n \"V1alpha3ResourceSliceList\": V1alpha3ResourceSliceList,\n \"V1alpha3ResourceSliceSpec\": V1alpha3ResourceSliceSpec,\n \"V1beta1AllocatedDeviceStatus\": V1beta1AllocatedDeviceStatus,\n \"V1beta1AllocationResult\": V1beta1AllocationResult,\n \"V1beta1AuditAnnotation\": V1beta1AuditAnnotation,\n \"V1beta1BasicDevice\": V1beta1BasicDevice,\n \"V1beta1CELDeviceSelector\": V1beta1CELDeviceSelector,\n \"V1beta1ClusterTrustBundle\": V1beta1ClusterTrustBundle,\n \"V1beta1ClusterTrustBundleList\": V1beta1ClusterTrustBundleList,\n \"V1beta1ClusterTrustBundleSpec\": V1beta1ClusterTrustBundleSpec,\n \"V1beta1Counter\": V1beta1Counter,\n \"V1beta1CounterSet\": V1beta1CounterSet,\n \"V1beta1Device\": V1beta1Device,\n \"V1beta1DeviceAllocationConfiguration\": V1beta1DeviceAllocationConfiguration,\n \"V1beta1DeviceAllocationResult\": V1beta1DeviceAllocationResult,\n \"V1beta1DeviceAttribute\": V1beta1DeviceAttribute,\n \"V1beta1DeviceCapacity\": V1beta1DeviceCapacity,\n \"V1beta1DeviceClaim\": V1beta1DeviceClaim,\n \"V1beta1DeviceClaimConfiguration\": V1beta1DeviceClaimConfiguration,\n \"V1beta1DeviceClass\": V1beta1DeviceClass,\n \"V1beta1DeviceClassConfiguration\": V1beta1DeviceClassConfiguration,\n \"V1beta1DeviceClassList\": V1beta1DeviceClassList,\n \"V1beta1DeviceClassSpec\": V1beta1DeviceClassSpec,\n \"V1beta1DeviceConstraint\": V1beta1DeviceConstraint,\n \"V1beta1DeviceCounterConsumption\": V1beta1DeviceCounterConsumption,\n \"V1beta1DeviceRequest\": V1beta1DeviceRequest,\n \"V1beta1DeviceRequestAllocationResult\": V1beta1DeviceRequestAllocationResult,\n \"V1beta1DeviceSelector\": V1beta1DeviceSelector,\n \"V1beta1DeviceSubRequest\": V1beta1DeviceSubRequest,\n \"V1beta1DeviceTaint\": V1beta1DeviceTaint,\n \"V1beta1DeviceToleration\": V1beta1DeviceToleration,\n \"V1beta1ExpressionWarning\": V1beta1ExpressionWarning,\n \"V1beta1IPAddress\": V1beta1IPAddress,\n \"V1beta1IPAddressList\": V1beta1IPAddressList,\n \"V1beta1IPAddressSpec\": V1beta1IPAddressSpec,\n \"V1beta1LeaseCandidate\": V1beta1LeaseCandidate,\n \"V1beta1LeaseCandidateList\": V1beta1LeaseCandidateList,\n \"V1beta1LeaseCandidateSpec\": V1beta1LeaseCandidateSpec,\n \"V1beta1MatchCondition\": V1beta1MatchCondition,\n \"V1beta1MatchResources\": V1beta1MatchResources,\n \"V1beta1NamedRuleWithOperations\": V1beta1NamedRuleWithOperations,\n \"V1beta1NetworkDeviceData\": V1beta1NetworkDeviceData,\n \"V1beta1OpaqueDeviceConfiguration\": V1beta1OpaqueDeviceConfiguration,\n \"V1beta1ParamKind\": V1beta1ParamKind,\n \"V1beta1ParamRef\": V1beta1ParamRef,\n \"V1beta1ParentReference\": V1beta1ParentReference,\n \"V1beta1ResourceClaim\": V1beta1ResourceClaim,\n \"V1beta1ResourceClaimConsumerReference\": V1beta1ResourceClaimConsumerReference,\n \"V1beta1ResourceClaimList\": V1beta1ResourceClaimList,\n \"V1beta1ResourceClaimSpec\": V1beta1ResourceClaimSpec,\n \"V1beta1ResourceClaimStatus\": V1beta1ResourceClaimStatus,\n \"V1beta1ResourceClaimTemplate\": V1beta1ResourceClaimTemplate,\n \"V1beta1ResourceClaimTemplateList\": V1beta1ResourceClaimTemplateList,\n \"V1beta1ResourceClaimTemplateSpec\": V1beta1ResourceClaimTemplateSpec,\n \"V1beta1ResourcePool\": V1beta1ResourcePool,\n \"V1beta1ResourceSlice\": V1beta1ResourceSlice,\n \"V1beta1ResourceSliceList\": V1beta1ResourceSliceList,\n \"V1beta1ResourceSliceSpec\": V1beta1ResourceSliceSpec,\n \"V1beta1ServiceCIDR\": V1beta1ServiceCIDR,\n \"V1beta1ServiceCIDRList\": V1beta1ServiceCIDRList,\n \"V1beta1ServiceCIDRSpec\": V1beta1ServiceCIDRSpec,\n \"V1beta1ServiceCIDRStatus\": V1beta1ServiceCIDRStatus,\n \"V1beta1TypeChecking\": V1beta1TypeChecking,\n \"V1beta1ValidatingAdmissionPolicy\": V1beta1ValidatingAdmissionPolicy,\n \"V1beta1ValidatingAdmissionPolicyBinding\": V1beta1ValidatingAdmissionPolicyBinding,\n \"V1beta1ValidatingAdmissionPolicyBindingList\": V1beta1ValidatingAdmissionPolicyBindingList,\n \"V1beta1ValidatingAdmissionPolicyBindingSpec\": V1beta1ValidatingAdmissionPolicyBindingSpec,\n \"V1beta1ValidatingAdmissionPolicyList\": V1beta1ValidatingAdmissionPolicyList,\n \"V1beta1ValidatingAdmissionPolicySpec\": V1beta1ValidatingAdmissionPolicySpec,\n \"V1beta1ValidatingAdmissionPolicyStatus\": V1beta1ValidatingAdmissionPolicyStatus,\n \"V1beta1Validation\": V1beta1Validation,\n \"V1beta1Variable\": V1beta1Variable,\n \"V1beta1VolumeAttributesClass\": V1beta1VolumeAttributesClass,\n \"V1beta1VolumeAttributesClassList\": V1beta1VolumeAttributesClassList,\n \"V1beta2AllocatedDeviceStatus\": V1beta2AllocatedDeviceStatus,\n \"V1beta2AllocationResult\": V1beta2AllocationResult,\n \"V1beta2CELDeviceSelector\": V1beta2CELDeviceSelector,\n \"V1beta2Counter\": V1beta2Counter,\n \"V1beta2CounterSet\": V1beta2CounterSet,\n \"V1beta2Device\": V1beta2Device,\n \"V1beta2DeviceAllocationConfiguration\": V1beta2DeviceAllocationConfiguration,\n \"V1beta2DeviceAllocationResult\": V1beta2DeviceAllocationResult,\n \"V1beta2DeviceAttribute\": V1beta2DeviceAttribute,\n \"V1beta2DeviceCapacity\": V1beta2DeviceCapacity,\n \"V1beta2DeviceClaim\": V1beta2DeviceClaim,\n \"V1beta2DeviceClaimConfiguration\": V1beta2DeviceClaimConfiguration,\n \"V1beta2DeviceClass\": V1beta2DeviceClass,\n \"V1beta2DeviceClassConfiguration\": V1beta2DeviceClassConfiguration,\n \"V1beta2DeviceClassList\": V1beta2DeviceClassList,\n \"V1beta2DeviceClassSpec\": V1beta2DeviceClassSpec,\n \"V1beta2DeviceConstraint\": V1beta2DeviceConstraint,\n \"V1beta2DeviceCounterConsumption\": V1beta2DeviceCounterConsumption,\n \"V1beta2DeviceRequest\": V1beta2DeviceRequest,\n \"V1beta2DeviceRequestAllocationResult\": V1beta2DeviceRequestAllocationResult,\n \"V1beta2DeviceSelector\": V1beta2DeviceSelector,\n \"V1beta2DeviceSubRequest\": V1beta2DeviceSubRequest,\n \"V1beta2DeviceTaint\": V1beta2DeviceTaint,\n \"V1beta2DeviceToleration\": V1beta2DeviceToleration,\n \"V1beta2ExactDeviceRequest\": V1beta2ExactDeviceRequest,\n \"V1beta2NetworkDeviceData\": V1beta2NetworkDeviceData,\n \"V1beta2OpaqueDeviceConfiguration\": V1beta2OpaqueDeviceConfiguration,\n \"V1beta2ResourceClaim\": V1beta2ResourceClaim,\n \"V1beta2ResourceClaimConsumerReference\": V1beta2ResourceClaimConsumerReference,\n \"V1beta2ResourceClaimList\": V1beta2ResourceClaimList,\n \"V1beta2ResourceClaimSpec\": V1beta2ResourceClaimSpec,\n \"V1beta2ResourceClaimStatus\": V1beta2ResourceClaimStatus,\n \"V1beta2ResourceClaimTemplate\": V1beta2ResourceClaimTemplate,\n \"V1beta2ResourceClaimTemplateList\": V1beta2ResourceClaimTemplateList,\n \"V1beta2ResourceClaimTemplateSpec\": V1beta2ResourceClaimTemplateSpec,\n \"V1beta2ResourcePool\": V1beta2ResourcePool,\n \"V1beta2ResourceSlice\": V1beta2ResourceSlice,\n \"V1beta2ResourceSliceList\": V1beta2ResourceSliceList,\n \"V1beta2ResourceSliceSpec\": V1beta2ResourceSliceSpec,\n \"V2ContainerResourceMetricSource\": V2ContainerResourceMetricSource,\n \"V2ContainerResourceMetricStatus\": V2ContainerResourceMetricStatus,\n \"V2CrossVersionObjectReference\": V2CrossVersionObjectReference,\n \"V2ExternalMetricSource\": V2ExternalMetricSource,\n \"V2ExternalMetricStatus\": V2ExternalMetricStatus,\n \"V2HPAScalingPolicy\": V2HPAScalingPolicy,\n \"V2HPAScalingRules\": V2HPAScalingRules,\n \"V2HorizontalPodAutoscaler\": V2HorizontalPodAutoscaler,\n \"V2HorizontalPodAutoscalerBehavior\": V2HorizontalPodAutoscalerBehavior,\n \"V2HorizontalPodAutoscalerCondition\": V2HorizontalPodAutoscalerCondition,\n \"V2HorizontalPodAutoscalerList\": V2HorizontalPodAutoscalerList,\n \"V2HorizontalPodAutoscalerSpec\": V2HorizontalPodAutoscalerSpec,\n \"V2HorizontalPodAutoscalerStatus\": V2HorizontalPodAutoscalerStatus,\n \"V2MetricIdentifier\": V2MetricIdentifier,\n \"V2MetricSpec\": V2MetricSpec,\n \"V2MetricStatus\": V2MetricStatus,\n \"V2MetricTarget\": V2MetricTarget,\n \"V2MetricValueStatus\": V2MetricValueStatus,\n \"V2ObjectMetricSource\": V2ObjectMetricSource,\n \"V2ObjectMetricStatus\": V2ObjectMetricStatus,\n \"V2PodsMetricSource\": V2PodsMetricSource,\n \"V2PodsMetricStatus\": V2PodsMetricStatus,\n \"V2ResourceMetricSource\": V2ResourceMetricSource,\n \"V2ResourceMetricStatus\": V2ResourceMetricStatus,\n \"VersionInfo\": VersionInfo,\n};\n/**\n * Every mime-type consists of a type, subtype, and optional parameters.\n * The subtype can be composite, including information about the content format.\n * For example: `application/json-patch+json`, `application/merge-patch+json`.\n *\n * This helper transforms a string mime-type into an internal representation.\n * This simplifies the implementation of predicates that in turn define common rules for parsing or stringifying\n * the payload.\n */\nconst parseMimeType = (mimeType) => {\n const [type = '', subtype = ''] = mimeType.split('/');\n return {\n type,\n subtype,\n subtypeTokens: subtype.split('+'),\n };\n};\n// This factory creates a predicate function that checks a string mime-type against defined rules.\nconst mimeTypePredicateFactory = (predicate) => (mimeType) => predicate(parseMimeType(mimeType));\n// Use this factory when you need to define a simple predicate based only on type and, if applicable, subtype.\nconst mimeTypeSimplePredicateFactory = (type, subtype) => mimeTypePredicateFactory((descriptor) => {\n if (descriptor.type !== type)\n return false;\n if (subtype != null && descriptor.subtype !== subtype)\n return false;\n return true;\n});\n// Creating a set of named predicates that will help us determine how to handle different mime-types\nconst isTextLikeMimeType = mimeTypeSimplePredicateFactory('text');\nconst isJsonMimeType = mimeTypeSimplePredicateFactory('application', 'json');\nconst isJsonLikeMimeType = mimeTypePredicateFactory((descriptor) => descriptor.type === 'application' && descriptor.subtypeTokens.some((item) => item === 'json'));\nconst isOctetStreamMimeType = mimeTypeSimplePredicateFactory('application', 'octet-stream');\nconst isFormUrlencodedMimeType = mimeTypeSimplePredicateFactory('application', 'x-www-form-urlencoded');\n// Defining a list of mime-types in the order of prioritization for handling.\nconst supportedMimeTypePredicatesWithPriority = [\n isJsonMimeType,\n isJsonLikeMimeType,\n isTextLikeMimeType,\n isOctetStreamMimeType,\n isFormUrlencodedMimeType,\n];\nconst nullableSuffix = \" | null\";\nconst optionalSuffix = \" | undefined\";\nconst arrayPrefix = \"Array<\";\nconst arraySuffix = \">\";\nconst mapPrefix = \"{ [key: string]: \";\nconst mapSuffix = \"; }\";\nexport class ObjectSerializer {\n static findCorrectType(data, expectedType) {\n if (data == undefined) {\n return expectedType;\n }\n else if (primitives.indexOf(expectedType.toLowerCase()) !== -1) {\n return expectedType;\n }\n else if (expectedType === \"Date\") {\n return expectedType;\n }\n else {\n if (enumsMap.has(expectedType)) {\n return expectedType;\n }\n if (!typeMap[expectedType]) {\n return expectedType; // w/e we don't know the type\n }\n // Check the discriminator\n let discriminatorProperty = typeMap[expectedType].discriminator;\n if (discriminatorProperty == null) {\n return expectedType; // the type does not have a discriminator. use it.\n }\n else {\n if (data[discriminatorProperty]) {\n var discriminatorType = data[discriminatorProperty];\n let mapping = typeMap[expectedType].mapping;\n if (mapping != undefined && mapping[discriminatorType]) {\n return mapping[discriminatorType]; // use the type given in the discriminator\n }\n else if (typeMap[discriminatorType]) {\n return discriminatorType;\n }\n else {\n return expectedType; // discriminator did not map to a type\n }\n }\n else {\n return expectedType; // discriminator was not present (or an empty string)\n }\n }\n }\n }\n static serialize(data, type, format) {\n if (data == undefined) {\n return data;\n }\n else if (primitives.indexOf(type.toLowerCase()) !== -1) {\n return data;\n }\n else if (type.endsWith(nullableSuffix)) {\n let subType = type.slice(0, -nullableSuffix.length); // Type | null => Type\n return ObjectSerializer.serialize(data, subType, format);\n }\n else if (type.endsWith(optionalSuffix)) {\n let subType = type.slice(0, -optionalSuffix.length); // Type | undefined => Type\n return ObjectSerializer.serialize(data, subType, format);\n }\n else if (type.startsWith(arrayPrefix)) {\n let subType = type.slice(arrayPrefix.length, -arraySuffix.length); // Array => Type\n let transformedData = [];\n for (let date of data) {\n transformedData.push(ObjectSerializer.serialize(date, subType, format));\n }\n return transformedData;\n }\n else if (type.startsWith(mapPrefix)) {\n let subType = type.slice(mapPrefix.length, -mapSuffix.length); // { [key: string]: Type; } => Type\n let transformedData = {};\n for (let key in data) {\n transformedData[key] = ObjectSerializer.serialize(data[key], subType, format);\n }\n return transformedData;\n }\n else if (type === \"Date\") {\n if (format == \"date\") {\n let month = data.getMonth() + 1;\n month = month < 10 ? \"0\" + month.toString() : month.toString();\n let day = data.getDate();\n day = day < 10 ? \"0\" + day.toString() : day.toString();\n return data.getFullYear() + \"-\" + month + \"-\" + day;\n }\n else {\n return data.toISOString();\n }\n }\n else {\n if (enumsMap.has(type)) {\n return data;\n }\n if (!typeMap[type]) { // in case we dont know the type\n return data;\n }\n // Get the actual type of this object\n type = this.findCorrectType(data, type);\n // get the map for the correct type.\n let attributeTypes = typeMap[type].getAttributeTypeMap();\n let instance = {};\n for (let attributeType of attributeTypes) {\n instance[attributeType.baseName] = ObjectSerializer.serialize(data[attributeType.name], attributeType.type, attributeType.format);\n }\n return instance;\n }\n }\n static deserialize(data, type, format) {\n // polymorphism may change the actual type.\n type = ObjectSerializer.findCorrectType(data, type);\n if (data == undefined) {\n return data;\n }\n else if (primitives.indexOf(type.toLowerCase()) !== -1) {\n return data;\n }\n else if (type.endsWith(nullableSuffix)) {\n let subType = type.slice(0, -nullableSuffix.length); // Type | null => Type\n return ObjectSerializer.deserialize(data, subType, format);\n }\n else if (type.endsWith(optionalSuffix)) {\n let subType = type.slice(0, -optionalSuffix.length); // Type | undefined => Type\n return ObjectSerializer.deserialize(data, subType, format);\n }\n else if (type.startsWith(arrayPrefix)) {\n let subType = type.slice(arrayPrefix.length, -arraySuffix.length); // Array => Type\n let transformedData = [];\n for (let date of data) {\n transformedData.push(ObjectSerializer.deserialize(date, subType, format));\n }\n return transformedData;\n }\n else if (type.startsWith(mapPrefix)) {\n let subType = type.slice(mapPrefix.length, -mapSuffix.length); // { [key: string]: Type; } => Type\n let transformedData = {};\n for (let key in data) {\n transformedData[key] = ObjectSerializer.deserialize(data[key], subType, format);\n }\n return transformedData;\n }\n else if (type === \"Date\") {\n return new Date(data);\n }\n else {\n if (enumsMap.has(type)) { // is Enum\n return data;\n }\n if (!typeMap[type]) { // dont know the type\n return data;\n }\n let instance = new typeMap[type]();\n let attributeTypes = typeMap[type].getAttributeTypeMap();\n for (let attributeType of attributeTypes) {\n let value = ObjectSerializer.deserialize(data[attributeType.baseName], attributeType.type, attributeType.format);\n if (value !== undefined) {\n instance[attributeType.name] = value;\n }\n }\n return instance;\n }\n }\n /**\n * Normalize media type\n *\n * We currently do not handle any media types attributes, i.e. anything\n * after a semicolon. All content is assumed to be UTF-8 compatible.\n */\n static normalizeMediaType(mediaType) {\n var _a;\n if (mediaType === undefined) {\n return undefined;\n }\n return ((_a = mediaType.split(\";\")[0]) !== null && _a !== void 0 ? _a : '').trim().toLowerCase();\n }\n /**\n * From a list of possible media types, choose the one we can handle best.\n *\n * The order of the given media types does not have any impact on the choice\n * made.\n */\n static getPreferredMediaType(mediaTypes) {\n /** According to OAS 3 we should default to json */\n if (mediaTypes.length === 0) {\n return \"application/json\";\n }\n const normalMediaTypes = mediaTypes.map(ObjectSerializer.normalizeMediaType);\n for (const predicate of supportedMimeTypePredicatesWithPriority) {\n for (const mediaType of normalMediaTypes) {\n if (mediaType != null && predicate(mediaType)) {\n return mediaType;\n }\n }\n }\n throw new Error(\"None of the given media types are supported: \" + mediaTypes.join(\", \"));\n }\n /**\n * Convert data to a string according the given media type\n */\n static stringify(data, mediaType) {\n if (isTextLikeMimeType(mediaType)) {\n return String(data);\n }\n if (isJsonLikeMimeType(mediaType)) {\n return JSON.stringify(data);\n }\n throw new Error(\"The mediaType \" + mediaType + \" is not supported by ObjectSerializer.stringify.\");\n }\n /**\n * Parse data from a string according to the given media type\n */\n static parse(rawData, mediaType) {\n if (mediaType === undefined) {\n throw new Error(\"Cannot parse content. No Content-Type defined.\");\n }\n if (isTextLikeMimeType(mediaType)) {\n return rawData;\n }\n if (isJsonLikeMimeType(mediaType)) {\n return JSON.parse(rawData);\n }\n throw new Error(\"The mediaType \" + mediaType + \" is not supported by ObjectSerializer.parse.\");\n }\n}\n//# sourceMappingURL=ObjectSerializer.js.map","/**\n * Returns if a specific http code is in a given code range\n * where the code range is defined as a combination of digits\n * and \"X\" (the letter X) with a length of 3\n *\n * @param codeRange string with length 3 consisting of digits and \"X\" (the letter X)\n * @param code the http status code to be checked against the code range\n */\nexport function isCodeInRange(codeRange, code) {\n // This is how the default value is encoded in OAG\n if (codeRange === \"0\") {\n return true;\n }\n if (codeRange == code.toString()) {\n return true;\n }\n else {\n const codeString = code.toString();\n if (codeString.length != codeRange.length) {\n return false;\n }\n for (let i = 0; i < codeString.length; i++) {\n if (codeRange.charAt(i) != \"X\" && codeRange.charAt(i) != codeString.charAt(i)) {\n return false;\n }\n }\n return true;\n }\n}\n/**\n* Returns if it can consume form\n*\n* @param consumes array\n*/\nexport function canConsumeForm(contentTypes) {\n return contentTypes.indexOf('multipart/form-data') !== -1;\n}\n//# sourceMappingURL=util.js.map","// TODO: better import syntax?\nimport { BaseAPIRequestFactory, RequiredError } from './baseapi.js';\nimport { HttpMethod, HttpInfo } from '../http/http.js';\nimport { ObjectSerializer } from '../models/ObjectSerializer.js';\nimport { ApiException } from './exception.js';\nimport { isCodeInRange } from '../util.js';\n/**\n * no description\n */\nexport class AppsV1ApiRequestFactory extends BaseAPIRequestFactory {\n /**\n * create a ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n async createNamespacedControllerRevision(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"createNamespacedControllerRevision\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"createNamespacedControllerRevision\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/controllerrevisions'\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1ControllerRevision\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * create a DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n async createNamespacedDaemonSet(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"createNamespacedDaemonSet\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"createNamespacedDaemonSet\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/daemonsets'\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1DaemonSet\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * create a Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n async createNamespacedDeployment(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"createNamespacedDeployment\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"createNamespacedDeployment\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/deployments'\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1Deployment\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * create a ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n async createNamespacedReplicaSet(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"createNamespacedReplicaSet\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"createNamespacedReplicaSet\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/replicasets'\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1ReplicaSet\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * create a StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n async createNamespacedStatefulSet(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"createNamespacedStatefulSet\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"createNamespacedStatefulSet\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/statefulsets'\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1StatefulSet\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * delete collection of ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param _continue The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldSelector A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param gracePeriodSeconds The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param ignoreStoreReadErrorWithClusterBreakingPotential if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param labelSelector A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param limit limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param orphanDependents Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param propagationPolicy Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param resourceVersion resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param resourceVersionMatch resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param sendInitialEvents `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param timeoutSeconds Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param body\n */\n async deleteCollectionNamespacedControllerRevision(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"deleteCollectionNamespacedControllerRevision\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/controllerrevisions'\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.DELETE);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (_continue !== undefined) {\n requestContext.setQueryParam(\"continue\", ObjectSerializer.serialize(_continue, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldSelector !== undefined) {\n requestContext.setQueryParam(\"fieldSelector\", ObjectSerializer.serialize(fieldSelector, \"string\", \"\"));\n }\n // Query Params\n if (gracePeriodSeconds !== undefined) {\n requestContext.setQueryParam(\"gracePeriodSeconds\", ObjectSerializer.serialize(gracePeriodSeconds, \"number\", \"\"));\n }\n // Query Params\n if (ignoreStoreReadErrorWithClusterBreakingPotential !== undefined) {\n requestContext.setQueryParam(\"ignoreStoreReadErrorWithClusterBreakingPotential\", ObjectSerializer.serialize(ignoreStoreReadErrorWithClusterBreakingPotential, \"boolean\", \"\"));\n }\n // Query Params\n if (labelSelector !== undefined) {\n requestContext.setQueryParam(\"labelSelector\", ObjectSerializer.serialize(labelSelector, \"string\", \"\"));\n }\n // Query Params\n if (limit !== undefined) {\n requestContext.setQueryParam(\"limit\", ObjectSerializer.serialize(limit, \"number\", \"\"));\n }\n // Query Params\n if (orphanDependents !== undefined) {\n requestContext.setQueryParam(\"orphanDependents\", ObjectSerializer.serialize(orphanDependents, \"boolean\", \"\"));\n }\n // Query Params\n if (propagationPolicy !== undefined) {\n requestContext.setQueryParam(\"propagationPolicy\", ObjectSerializer.serialize(propagationPolicy, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersion !== undefined) {\n requestContext.setQueryParam(\"resourceVersion\", ObjectSerializer.serialize(resourceVersion, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersionMatch !== undefined) {\n requestContext.setQueryParam(\"resourceVersionMatch\", ObjectSerializer.serialize(resourceVersionMatch, \"string\", \"\"));\n }\n // Query Params\n if (sendInitialEvents !== undefined) {\n requestContext.setQueryParam(\"sendInitialEvents\", ObjectSerializer.serialize(sendInitialEvents, \"boolean\", \"\"));\n }\n // Query Params\n if (timeoutSeconds !== undefined) {\n requestContext.setQueryParam(\"timeoutSeconds\", ObjectSerializer.serialize(timeoutSeconds, \"number\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1DeleteOptions\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * delete collection of DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param _continue The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldSelector A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param gracePeriodSeconds The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param ignoreStoreReadErrorWithClusterBreakingPotential if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param labelSelector A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param limit limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param orphanDependents Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param propagationPolicy Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param resourceVersion resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param resourceVersionMatch resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param sendInitialEvents `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param timeoutSeconds Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param body\n */\n async deleteCollectionNamespacedDaemonSet(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"deleteCollectionNamespacedDaemonSet\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/daemonsets'\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.DELETE);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (_continue !== undefined) {\n requestContext.setQueryParam(\"continue\", ObjectSerializer.serialize(_continue, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldSelector !== undefined) {\n requestContext.setQueryParam(\"fieldSelector\", ObjectSerializer.serialize(fieldSelector, \"string\", \"\"));\n }\n // Query Params\n if (gracePeriodSeconds !== undefined) {\n requestContext.setQueryParam(\"gracePeriodSeconds\", ObjectSerializer.serialize(gracePeriodSeconds, \"number\", \"\"));\n }\n // Query Params\n if (ignoreStoreReadErrorWithClusterBreakingPotential !== undefined) {\n requestContext.setQueryParam(\"ignoreStoreReadErrorWithClusterBreakingPotential\", ObjectSerializer.serialize(ignoreStoreReadErrorWithClusterBreakingPotential, \"boolean\", \"\"));\n }\n // Query Params\n if (labelSelector !== undefined) {\n requestContext.setQueryParam(\"labelSelector\", ObjectSerializer.serialize(labelSelector, \"string\", \"\"));\n }\n // Query Params\n if (limit !== undefined) {\n requestContext.setQueryParam(\"limit\", ObjectSerializer.serialize(limit, \"number\", \"\"));\n }\n // Query Params\n if (orphanDependents !== undefined) {\n requestContext.setQueryParam(\"orphanDependents\", ObjectSerializer.serialize(orphanDependents, \"boolean\", \"\"));\n }\n // Query Params\n if (propagationPolicy !== undefined) {\n requestContext.setQueryParam(\"propagationPolicy\", ObjectSerializer.serialize(propagationPolicy, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersion !== undefined) {\n requestContext.setQueryParam(\"resourceVersion\", ObjectSerializer.serialize(resourceVersion, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersionMatch !== undefined) {\n requestContext.setQueryParam(\"resourceVersionMatch\", ObjectSerializer.serialize(resourceVersionMatch, \"string\", \"\"));\n }\n // Query Params\n if (sendInitialEvents !== undefined) {\n requestContext.setQueryParam(\"sendInitialEvents\", ObjectSerializer.serialize(sendInitialEvents, \"boolean\", \"\"));\n }\n // Query Params\n if (timeoutSeconds !== undefined) {\n requestContext.setQueryParam(\"timeoutSeconds\", ObjectSerializer.serialize(timeoutSeconds, \"number\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1DeleteOptions\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * delete collection of Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param _continue The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldSelector A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param gracePeriodSeconds The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param ignoreStoreReadErrorWithClusterBreakingPotential if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param labelSelector A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param limit limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param orphanDependents Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param propagationPolicy Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param resourceVersion resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param resourceVersionMatch resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param sendInitialEvents `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param timeoutSeconds Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param body\n */\n async deleteCollectionNamespacedDeployment(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"deleteCollectionNamespacedDeployment\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/deployments'\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.DELETE);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (_continue !== undefined) {\n requestContext.setQueryParam(\"continue\", ObjectSerializer.serialize(_continue, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldSelector !== undefined) {\n requestContext.setQueryParam(\"fieldSelector\", ObjectSerializer.serialize(fieldSelector, \"string\", \"\"));\n }\n // Query Params\n if (gracePeriodSeconds !== undefined) {\n requestContext.setQueryParam(\"gracePeriodSeconds\", ObjectSerializer.serialize(gracePeriodSeconds, \"number\", \"\"));\n }\n // Query Params\n if (ignoreStoreReadErrorWithClusterBreakingPotential !== undefined) {\n requestContext.setQueryParam(\"ignoreStoreReadErrorWithClusterBreakingPotential\", ObjectSerializer.serialize(ignoreStoreReadErrorWithClusterBreakingPotential, \"boolean\", \"\"));\n }\n // Query Params\n if (labelSelector !== undefined) {\n requestContext.setQueryParam(\"labelSelector\", ObjectSerializer.serialize(labelSelector, \"string\", \"\"));\n }\n // Query Params\n if (limit !== undefined) {\n requestContext.setQueryParam(\"limit\", ObjectSerializer.serialize(limit, \"number\", \"\"));\n }\n // Query Params\n if (orphanDependents !== undefined) {\n requestContext.setQueryParam(\"orphanDependents\", ObjectSerializer.serialize(orphanDependents, \"boolean\", \"\"));\n }\n // Query Params\n if (propagationPolicy !== undefined) {\n requestContext.setQueryParam(\"propagationPolicy\", ObjectSerializer.serialize(propagationPolicy, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersion !== undefined) {\n requestContext.setQueryParam(\"resourceVersion\", ObjectSerializer.serialize(resourceVersion, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersionMatch !== undefined) {\n requestContext.setQueryParam(\"resourceVersionMatch\", ObjectSerializer.serialize(resourceVersionMatch, \"string\", \"\"));\n }\n // Query Params\n if (sendInitialEvents !== undefined) {\n requestContext.setQueryParam(\"sendInitialEvents\", ObjectSerializer.serialize(sendInitialEvents, \"boolean\", \"\"));\n }\n // Query Params\n if (timeoutSeconds !== undefined) {\n requestContext.setQueryParam(\"timeoutSeconds\", ObjectSerializer.serialize(timeoutSeconds, \"number\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1DeleteOptions\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * delete collection of ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param _continue The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldSelector A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param gracePeriodSeconds The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param ignoreStoreReadErrorWithClusterBreakingPotential if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param labelSelector A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param limit limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param orphanDependents Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param propagationPolicy Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param resourceVersion resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param resourceVersionMatch resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param sendInitialEvents `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param timeoutSeconds Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param body\n */\n async deleteCollectionNamespacedReplicaSet(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"deleteCollectionNamespacedReplicaSet\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/replicasets'\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.DELETE);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (_continue !== undefined) {\n requestContext.setQueryParam(\"continue\", ObjectSerializer.serialize(_continue, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldSelector !== undefined) {\n requestContext.setQueryParam(\"fieldSelector\", ObjectSerializer.serialize(fieldSelector, \"string\", \"\"));\n }\n // Query Params\n if (gracePeriodSeconds !== undefined) {\n requestContext.setQueryParam(\"gracePeriodSeconds\", ObjectSerializer.serialize(gracePeriodSeconds, \"number\", \"\"));\n }\n // Query Params\n if (ignoreStoreReadErrorWithClusterBreakingPotential !== undefined) {\n requestContext.setQueryParam(\"ignoreStoreReadErrorWithClusterBreakingPotential\", ObjectSerializer.serialize(ignoreStoreReadErrorWithClusterBreakingPotential, \"boolean\", \"\"));\n }\n // Query Params\n if (labelSelector !== undefined) {\n requestContext.setQueryParam(\"labelSelector\", ObjectSerializer.serialize(labelSelector, \"string\", \"\"));\n }\n // Query Params\n if (limit !== undefined) {\n requestContext.setQueryParam(\"limit\", ObjectSerializer.serialize(limit, \"number\", \"\"));\n }\n // Query Params\n if (orphanDependents !== undefined) {\n requestContext.setQueryParam(\"orphanDependents\", ObjectSerializer.serialize(orphanDependents, \"boolean\", \"\"));\n }\n // Query Params\n if (propagationPolicy !== undefined) {\n requestContext.setQueryParam(\"propagationPolicy\", ObjectSerializer.serialize(propagationPolicy, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersion !== undefined) {\n requestContext.setQueryParam(\"resourceVersion\", ObjectSerializer.serialize(resourceVersion, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersionMatch !== undefined) {\n requestContext.setQueryParam(\"resourceVersionMatch\", ObjectSerializer.serialize(resourceVersionMatch, \"string\", \"\"));\n }\n // Query Params\n if (sendInitialEvents !== undefined) {\n requestContext.setQueryParam(\"sendInitialEvents\", ObjectSerializer.serialize(sendInitialEvents, \"boolean\", \"\"));\n }\n // Query Params\n if (timeoutSeconds !== undefined) {\n requestContext.setQueryParam(\"timeoutSeconds\", ObjectSerializer.serialize(timeoutSeconds, \"number\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1DeleteOptions\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * delete collection of StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param _continue The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldSelector A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param gracePeriodSeconds The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param ignoreStoreReadErrorWithClusterBreakingPotential if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param labelSelector A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param limit limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param orphanDependents Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param propagationPolicy Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param resourceVersion resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param resourceVersionMatch resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param sendInitialEvents `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param timeoutSeconds Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param body\n */\n async deleteCollectionNamespacedStatefulSet(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"deleteCollectionNamespacedStatefulSet\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/statefulsets'\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.DELETE);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (_continue !== undefined) {\n requestContext.setQueryParam(\"continue\", ObjectSerializer.serialize(_continue, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldSelector !== undefined) {\n requestContext.setQueryParam(\"fieldSelector\", ObjectSerializer.serialize(fieldSelector, \"string\", \"\"));\n }\n // Query Params\n if (gracePeriodSeconds !== undefined) {\n requestContext.setQueryParam(\"gracePeriodSeconds\", ObjectSerializer.serialize(gracePeriodSeconds, \"number\", \"\"));\n }\n // Query Params\n if (ignoreStoreReadErrorWithClusterBreakingPotential !== undefined) {\n requestContext.setQueryParam(\"ignoreStoreReadErrorWithClusterBreakingPotential\", ObjectSerializer.serialize(ignoreStoreReadErrorWithClusterBreakingPotential, \"boolean\", \"\"));\n }\n // Query Params\n if (labelSelector !== undefined) {\n requestContext.setQueryParam(\"labelSelector\", ObjectSerializer.serialize(labelSelector, \"string\", \"\"));\n }\n // Query Params\n if (limit !== undefined) {\n requestContext.setQueryParam(\"limit\", ObjectSerializer.serialize(limit, \"number\", \"\"));\n }\n // Query Params\n if (orphanDependents !== undefined) {\n requestContext.setQueryParam(\"orphanDependents\", ObjectSerializer.serialize(orphanDependents, \"boolean\", \"\"));\n }\n // Query Params\n if (propagationPolicy !== undefined) {\n requestContext.setQueryParam(\"propagationPolicy\", ObjectSerializer.serialize(propagationPolicy, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersion !== undefined) {\n requestContext.setQueryParam(\"resourceVersion\", ObjectSerializer.serialize(resourceVersion, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersionMatch !== undefined) {\n requestContext.setQueryParam(\"resourceVersionMatch\", ObjectSerializer.serialize(resourceVersionMatch, \"string\", \"\"));\n }\n // Query Params\n if (sendInitialEvents !== undefined) {\n requestContext.setQueryParam(\"sendInitialEvents\", ObjectSerializer.serialize(sendInitialEvents, \"boolean\", \"\"));\n }\n // Query Params\n if (timeoutSeconds !== undefined) {\n requestContext.setQueryParam(\"timeoutSeconds\", ObjectSerializer.serialize(timeoutSeconds, \"number\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1DeleteOptions\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * delete a ControllerRevision\n * @param name name of the ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param gracePeriodSeconds The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param ignoreStoreReadErrorWithClusterBreakingPotential if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param orphanDependents Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param propagationPolicy Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param body\n */\n async deleteNamespacedControllerRevision(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"deleteNamespacedControllerRevision\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"deleteNamespacedControllerRevision\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.DELETE);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (gracePeriodSeconds !== undefined) {\n requestContext.setQueryParam(\"gracePeriodSeconds\", ObjectSerializer.serialize(gracePeriodSeconds, \"number\", \"\"));\n }\n // Query Params\n if (ignoreStoreReadErrorWithClusterBreakingPotential !== undefined) {\n requestContext.setQueryParam(\"ignoreStoreReadErrorWithClusterBreakingPotential\", ObjectSerializer.serialize(ignoreStoreReadErrorWithClusterBreakingPotential, \"boolean\", \"\"));\n }\n // Query Params\n if (orphanDependents !== undefined) {\n requestContext.setQueryParam(\"orphanDependents\", ObjectSerializer.serialize(orphanDependents, \"boolean\", \"\"));\n }\n // Query Params\n if (propagationPolicy !== undefined) {\n requestContext.setQueryParam(\"propagationPolicy\", ObjectSerializer.serialize(propagationPolicy, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1DeleteOptions\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * delete a DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param gracePeriodSeconds The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param ignoreStoreReadErrorWithClusterBreakingPotential if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param orphanDependents Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param propagationPolicy Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param body\n */\n async deleteNamespacedDaemonSet(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"deleteNamespacedDaemonSet\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"deleteNamespacedDaemonSet\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.DELETE);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (gracePeriodSeconds !== undefined) {\n requestContext.setQueryParam(\"gracePeriodSeconds\", ObjectSerializer.serialize(gracePeriodSeconds, \"number\", \"\"));\n }\n // Query Params\n if (ignoreStoreReadErrorWithClusterBreakingPotential !== undefined) {\n requestContext.setQueryParam(\"ignoreStoreReadErrorWithClusterBreakingPotential\", ObjectSerializer.serialize(ignoreStoreReadErrorWithClusterBreakingPotential, \"boolean\", \"\"));\n }\n // Query Params\n if (orphanDependents !== undefined) {\n requestContext.setQueryParam(\"orphanDependents\", ObjectSerializer.serialize(orphanDependents, \"boolean\", \"\"));\n }\n // Query Params\n if (propagationPolicy !== undefined) {\n requestContext.setQueryParam(\"propagationPolicy\", ObjectSerializer.serialize(propagationPolicy, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1DeleteOptions\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * delete a Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param gracePeriodSeconds The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param ignoreStoreReadErrorWithClusterBreakingPotential if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param orphanDependents Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param propagationPolicy Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param body\n */\n async deleteNamespacedDeployment(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"deleteNamespacedDeployment\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"deleteNamespacedDeployment\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/deployments/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.DELETE);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (gracePeriodSeconds !== undefined) {\n requestContext.setQueryParam(\"gracePeriodSeconds\", ObjectSerializer.serialize(gracePeriodSeconds, \"number\", \"\"));\n }\n // Query Params\n if (ignoreStoreReadErrorWithClusterBreakingPotential !== undefined) {\n requestContext.setQueryParam(\"ignoreStoreReadErrorWithClusterBreakingPotential\", ObjectSerializer.serialize(ignoreStoreReadErrorWithClusterBreakingPotential, \"boolean\", \"\"));\n }\n // Query Params\n if (orphanDependents !== undefined) {\n requestContext.setQueryParam(\"orphanDependents\", ObjectSerializer.serialize(orphanDependents, \"boolean\", \"\"));\n }\n // Query Params\n if (propagationPolicy !== undefined) {\n requestContext.setQueryParam(\"propagationPolicy\", ObjectSerializer.serialize(propagationPolicy, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1DeleteOptions\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * delete a ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param gracePeriodSeconds The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param ignoreStoreReadErrorWithClusterBreakingPotential if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param orphanDependents Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param propagationPolicy Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param body\n */\n async deleteNamespacedReplicaSet(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"deleteNamespacedReplicaSet\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"deleteNamespacedReplicaSet\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/replicasets/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.DELETE);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (gracePeriodSeconds !== undefined) {\n requestContext.setQueryParam(\"gracePeriodSeconds\", ObjectSerializer.serialize(gracePeriodSeconds, \"number\", \"\"));\n }\n // Query Params\n if (ignoreStoreReadErrorWithClusterBreakingPotential !== undefined) {\n requestContext.setQueryParam(\"ignoreStoreReadErrorWithClusterBreakingPotential\", ObjectSerializer.serialize(ignoreStoreReadErrorWithClusterBreakingPotential, \"boolean\", \"\"));\n }\n // Query Params\n if (orphanDependents !== undefined) {\n requestContext.setQueryParam(\"orphanDependents\", ObjectSerializer.serialize(orphanDependents, \"boolean\", \"\"));\n }\n // Query Params\n if (propagationPolicy !== undefined) {\n requestContext.setQueryParam(\"propagationPolicy\", ObjectSerializer.serialize(propagationPolicy, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1DeleteOptions\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * delete a StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param gracePeriodSeconds The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param ignoreStoreReadErrorWithClusterBreakingPotential if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param orphanDependents Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param propagationPolicy Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param body\n */\n async deleteNamespacedStatefulSet(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"deleteNamespacedStatefulSet\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"deleteNamespacedStatefulSet\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.DELETE);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (gracePeriodSeconds !== undefined) {\n requestContext.setQueryParam(\"gracePeriodSeconds\", ObjectSerializer.serialize(gracePeriodSeconds, \"number\", \"\"));\n }\n // Query Params\n if (ignoreStoreReadErrorWithClusterBreakingPotential !== undefined) {\n requestContext.setQueryParam(\"ignoreStoreReadErrorWithClusterBreakingPotential\", ObjectSerializer.serialize(ignoreStoreReadErrorWithClusterBreakingPotential, \"boolean\", \"\"));\n }\n // Query Params\n if (orphanDependents !== undefined) {\n requestContext.setQueryParam(\"orphanDependents\", ObjectSerializer.serialize(orphanDependents, \"boolean\", \"\"));\n }\n // Query Params\n if (propagationPolicy !== undefined) {\n requestContext.setQueryParam(\"propagationPolicy\", ObjectSerializer.serialize(propagationPolicy, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1DeleteOptions\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * get available resources\n */\n async getAPIResources(_options) {\n var _a;\n let _config = _options || this.configuration;\n // Path Params\n const localVarPath = '/apis/apps/v1/';\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * list or watch objects of kind ControllerRevision\n * @param allowWatchBookmarks allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param _continue The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param fieldSelector A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param labelSelector A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param limit limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param resourceVersion resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param resourceVersionMatch resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param sendInitialEvents `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param timeoutSeconds Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param watch Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n async listControllerRevisionForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n var _a;\n let _config = _options || this.configuration;\n // Path Params\n const localVarPath = '/apis/apps/v1/controllerrevisions';\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (allowWatchBookmarks !== undefined) {\n requestContext.setQueryParam(\"allowWatchBookmarks\", ObjectSerializer.serialize(allowWatchBookmarks, \"boolean\", \"\"));\n }\n // Query Params\n if (_continue !== undefined) {\n requestContext.setQueryParam(\"continue\", ObjectSerializer.serialize(_continue, \"string\", \"\"));\n }\n // Query Params\n if (fieldSelector !== undefined) {\n requestContext.setQueryParam(\"fieldSelector\", ObjectSerializer.serialize(fieldSelector, \"string\", \"\"));\n }\n // Query Params\n if (labelSelector !== undefined) {\n requestContext.setQueryParam(\"labelSelector\", ObjectSerializer.serialize(labelSelector, \"string\", \"\"));\n }\n // Query Params\n if (limit !== undefined) {\n requestContext.setQueryParam(\"limit\", ObjectSerializer.serialize(limit, \"number\", \"\"));\n }\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersion !== undefined) {\n requestContext.setQueryParam(\"resourceVersion\", ObjectSerializer.serialize(resourceVersion, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersionMatch !== undefined) {\n requestContext.setQueryParam(\"resourceVersionMatch\", ObjectSerializer.serialize(resourceVersionMatch, \"string\", \"\"));\n }\n // Query Params\n if (sendInitialEvents !== undefined) {\n requestContext.setQueryParam(\"sendInitialEvents\", ObjectSerializer.serialize(sendInitialEvents, \"boolean\", \"\"));\n }\n // Query Params\n if (timeoutSeconds !== undefined) {\n requestContext.setQueryParam(\"timeoutSeconds\", ObjectSerializer.serialize(timeoutSeconds, \"number\", \"\"));\n }\n // Query Params\n if (watch !== undefined) {\n requestContext.setQueryParam(\"watch\", ObjectSerializer.serialize(watch, \"boolean\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * list or watch objects of kind DaemonSet\n * @param allowWatchBookmarks allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param _continue The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param fieldSelector A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param labelSelector A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param limit limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param resourceVersion resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param resourceVersionMatch resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param sendInitialEvents `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param timeoutSeconds Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param watch Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n async listDaemonSetForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n var _a;\n let _config = _options || this.configuration;\n // Path Params\n const localVarPath = '/apis/apps/v1/daemonsets';\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (allowWatchBookmarks !== undefined) {\n requestContext.setQueryParam(\"allowWatchBookmarks\", ObjectSerializer.serialize(allowWatchBookmarks, \"boolean\", \"\"));\n }\n // Query Params\n if (_continue !== undefined) {\n requestContext.setQueryParam(\"continue\", ObjectSerializer.serialize(_continue, \"string\", \"\"));\n }\n // Query Params\n if (fieldSelector !== undefined) {\n requestContext.setQueryParam(\"fieldSelector\", ObjectSerializer.serialize(fieldSelector, \"string\", \"\"));\n }\n // Query Params\n if (labelSelector !== undefined) {\n requestContext.setQueryParam(\"labelSelector\", ObjectSerializer.serialize(labelSelector, \"string\", \"\"));\n }\n // Query Params\n if (limit !== undefined) {\n requestContext.setQueryParam(\"limit\", ObjectSerializer.serialize(limit, \"number\", \"\"));\n }\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersion !== undefined) {\n requestContext.setQueryParam(\"resourceVersion\", ObjectSerializer.serialize(resourceVersion, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersionMatch !== undefined) {\n requestContext.setQueryParam(\"resourceVersionMatch\", ObjectSerializer.serialize(resourceVersionMatch, \"string\", \"\"));\n }\n // Query Params\n if (sendInitialEvents !== undefined) {\n requestContext.setQueryParam(\"sendInitialEvents\", ObjectSerializer.serialize(sendInitialEvents, \"boolean\", \"\"));\n }\n // Query Params\n if (timeoutSeconds !== undefined) {\n requestContext.setQueryParam(\"timeoutSeconds\", ObjectSerializer.serialize(timeoutSeconds, \"number\", \"\"));\n }\n // Query Params\n if (watch !== undefined) {\n requestContext.setQueryParam(\"watch\", ObjectSerializer.serialize(watch, \"boolean\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * list or watch objects of kind Deployment\n * @param allowWatchBookmarks allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param _continue The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param fieldSelector A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param labelSelector A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param limit limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param resourceVersion resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param resourceVersionMatch resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param sendInitialEvents `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param timeoutSeconds Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param watch Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n async listDeploymentForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n var _a;\n let _config = _options || this.configuration;\n // Path Params\n const localVarPath = '/apis/apps/v1/deployments';\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (allowWatchBookmarks !== undefined) {\n requestContext.setQueryParam(\"allowWatchBookmarks\", ObjectSerializer.serialize(allowWatchBookmarks, \"boolean\", \"\"));\n }\n // Query Params\n if (_continue !== undefined) {\n requestContext.setQueryParam(\"continue\", ObjectSerializer.serialize(_continue, \"string\", \"\"));\n }\n // Query Params\n if (fieldSelector !== undefined) {\n requestContext.setQueryParam(\"fieldSelector\", ObjectSerializer.serialize(fieldSelector, \"string\", \"\"));\n }\n // Query Params\n if (labelSelector !== undefined) {\n requestContext.setQueryParam(\"labelSelector\", ObjectSerializer.serialize(labelSelector, \"string\", \"\"));\n }\n // Query Params\n if (limit !== undefined) {\n requestContext.setQueryParam(\"limit\", ObjectSerializer.serialize(limit, \"number\", \"\"));\n }\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersion !== undefined) {\n requestContext.setQueryParam(\"resourceVersion\", ObjectSerializer.serialize(resourceVersion, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersionMatch !== undefined) {\n requestContext.setQueryParam(\"resourceVersionMatch\", ObjectSerializer.serialize(resourceVersionMatch, \"string\", \"\"));\n }\n // Query Params\n if (sendInitialEvents !== undefined) {\n requestContext.setQueryParam(\"sendInitialEvents\", ObjectSerializer.serialize(sendInitialEvents, \"boolean\", \"\"));\n }\n // Query Params\n if (timeoutSeconds !== undefined) {\n requestContext.setQueryParam(\"timeoutSeconds\", ObjectSerializer.serialize(timeoutSeconds, \"number\", \"\"));\n }\n // Query Params\n if (watch !== undefined) {\n requestContext.setQueryParam(\"watch\", ObjectSerializer.serialize(watch, \"boolean\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * list or watch objects of kind ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param allowWatchBookmarks allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param _continue The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param fieldSelector A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param labelSelector A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param limit limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param resourceVersion resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param resourceVersionMatch resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param sendInitialEvents `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param timeoutSeconds Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param watch Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n async listNamespacedControllerRevision(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"listNamespacedControllerRevision\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/controllerrevisions'\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (allowWatchBookmarks !== undefined) {\n requestContext.setQueryParam(\"allowWatchBookmarks\", ObjectSerializer.serialize(allowWatchBookmarks, \"boolean\", \"\"));\n }\n // Query Params\n if (_continue !== undefined) {\n requestContext.setQueryParam(\"continue\", ObjectSerializer.serialize(_continue, \"string\", \"\"));\n }\n // Query Params\n if (fieldSelector !== undefined) {\n requestContext.setQueryParam(\"fieldSelector\", ObjectSerializer.serialize(fieldSelector, \"string\", \"\"));\n }\n // Query Params\n if (labelSelector !== undefined) {\n requestContext.setQueryParam(\"labelSelector\", ObjectSerializer.serialize(labelSelector, \"string\", \"\"));\n }\n // Query Params\n if (limit !== undefined) {\n requestContext.setQueryParam(\"limit\", ObjectSerializer.serialize(limit, \"number\", \"\"));\n }\n // Query Params\n if (resourceVersion !== undefined) {\n requestContext.setQueryParam(\"resourceVersion\", ObjectSerializer.serialize(resourceVersion, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersionMatch !== undefined) {\n requestContext.setQueryParam(\"resourceVersionMatch\", ObjectSerializer.serialize(resourceVersionMatch, \"string\", \"\"));\n }\n // Query Params\n if (sendInitialEvents !== undefined) {\n requestContext.setQueryParam(\"sendInitialEvents\", ObjectSerializer.serialize(sendInitialEvents, \"boolean\", \"\"));\n }\n // Query Params\n if (timeoutSeconds !== undefined) {\n requestContext.setQueryParam(\"timeoutSeconds\", ObjectSerializer.serialize(timeoutSeconds, \"number\", \"\"));\n }\n // Query Params\n if (watch !== undefined) {\n requestContext.setQueryParam(\"watch\", ObjectSerializer.serialize(watch, \"boolean\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * list or watch objects of kind DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param allowWatchBookmarks allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param _continue The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param fieldSelector A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param labelSelector A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param limit limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param resourceVersion resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param resourceVersionMatch resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param sendInitialEvents `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param timeoutSeconds Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param watch Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n async listNamespacedDaemonSet(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"listNamespacedDaemonSet\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/daemonsets'\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (allowWatchBookmarks !== undefined) {\n requestContext.setQueryParam(\"allowWatchBookmarks\", ObjectSerializer.serialize(allowWatchBookmarks, \"boolean\", \"\"));\n }\n // Query Params\n if (_continue !== undefined) {\n requestContext.setQueryParam(\"continue\", ObjectSerializer.serialize(_continue, \"string\", \"\"));\n }\n // Query Params\n if (fieldSelector !== undefined) {\n requestContext.setQueryParam(\"fieldSelector\", ObjectSerializer.serialize(fieldSelector, \"string\", \"\"));\n }\n // Query Params\n if (labelSelector !== undefined) {\n requestContext.setQueryParam(\"labelSelector\", ObjectSerializer.serialize(labelSelector, \"string\", \"\"));\n }\n // Query Params\n if (limit !== undefined) {\n requestContext.setQueryParam(\"limit\", ObjectSerializer.serialize(limit, \"number\", \"\"));\n }\n // Query Params\n if (resourceVersion !== undefined) {\n requestContext.setQueryParam(\"resourceVersion\", ObjectSerializer.serialize(resourceVersion, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersionMatch !== undefined) {\n requestContext.setQueryParam(\"resourceVersionMatch\", ObjectSerializer.serialize(resourceVersionMatch, \"string\", \"\"));\n }\n // Query Params\n if (sendInitialEvents !== undefined) {\n requestContext.setQueryParam(\"sendInitialEvents\", ObjectSerializer.serialize(sendInitialEvents, \"boolean\", \"\"));\n }\n // Query Params\n if (timeoutSeconds !== undefined) {\n requestContext.setQueryParam(\"timeoutSeconds\", ObjectSerializer.serialize(timeoutSeconds, \"number\", \"\"));\n }\n // Query Params\n if (watch !== undefined) {\n requestContext.setQueryParam(\"watch\", ObjectSerializer.serialize(watch, \"boolean\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * list or watch objects of kind Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param allowWatchBookmarks allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param _continue The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param fieldSelector A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param labelSelector A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param limit limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param resourceVersion resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param resourceVersionMatch resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param sendInitialEvents `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param timeoutSeconds Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param watch Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n async listNamespacedDeployment(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"listNamespacedDeployment\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/deployments'\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (allowWatchBookmarks !== undefined) {\n requestContext.setQueryParam(\"allowWatchBookmarks\", ObjectSerializer.serialize(allowWatchBookmarks, \"boolean\", \"\"));\n }\n // Query Params\n if (_continue !== undefined) {\n requestContext.setQueryParam(\"continue\", ObjectSerializer.serialize(_continue, \"string\", \"\"));\n }\n // Query Params\n if (fieldSelector !== undefined) {\n requestContext.setQueryParam(\"fieldSelector\", ObjectSerializer.serialize(fieldSelector, \"string\", \"\"));\n }\n // Query Params\n if (labelSelector !== undefined) {\n requestContext.setQueryParam(\"labelSelector\", ObjectSerializer.serialize(labelSelector, \"string\", \"\"));\n }\n // Query Params\n if (limit !== undefined) {\n requestContext.setQueryParam(\"limit\", ObjectSerializer.serialize(limit, \"number\", \"\"));\n }\n // Query Params\n if (resourceVersion !== undefined) {\n requestContext.setQueryParam(\"resourceVersion\", ObjectSerializer.serialize(resourceVersion, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersionMatch !== undefined) {\n requestContext.setQueryParam(\"resourceVersionMatch\", ObjectSerializer.serialize(resourceVersionMatch, \"string\", \"\"));\n }\n // Query Params\n if (sendInitialEvents !== undefined) {\n requestContext.setQueryParam(\"sendInitialEvents\", ObjectSerializer.serialize(sendInitialEvents, \"boolean\", \"\"));\n }\n // Query Params\n if (timeoutSeconds !== undefined) {\n requestContext.setQueryParam(\"timeoutSeconds\", ObjectSerializer.serialize(timeoutSeconds, \"number\", \"\"));\n }\n // Query Params\n if (watch !== undefined) {\n requestContext.setQueryParam(\"watch\", ObjectSerializer.serialize(watch, \"boolean\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * list or watch objects of kind ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param allowWatchBookmarks allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param _continue The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param fieldSelector A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param labelSelector A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param limit limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param resourceVersion resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param resourceVersionMatch resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param sendInitialEvents `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param timeoutSeconds Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param watch Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n async listNamespacedReplicaSet(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"listNamespacedReplicaSet\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/replicasets'\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (allowWatchBookmarks !== undefined) {\n requestContext.setQueryParam(\"allowWatchBookmarks\", ObjectSerializer.serialize(allowWatchBookmarks, \"boolean\", \"\"));\n }\n // Query Params\n if (_continue !== undefined) {\n requestContext.setQueryParam(\"continue\", ObjectSerializer.serialize(_continue, \"string\", \"\"));\n }\n // Query Params\n if (fieldSelector !== undefined) {\n requestContext.setQueryParam(\"fieldSelector\", ObjectSerializer.serialize(fieldSelector, \"string\", \"\"));\n }\n // Query Params\n if (labelSelector !== undefined) {\n requestContext.setQueryParam(\"labelSelector\", ObjectSerializer.serialize(labelSelector, \"string\", \"\"));\n }\n // Query Params\n if (limit !== undefined) {\n requestContext.setQueryParam(\"limit\", ObjectSerializer.serialize(limit, \"number\", \"\"));\n }\n // Query Params\n if (resourceVersion !== undefined) {\n requestContext.setQueryParam(\"resourceVersion\", ObjectSerializer.serialize(resourceVersion, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersionMatch !== undefined) {\n requestContext.setQueryParam(\"resourceVersionMatch\", ObjectSerializer.serialize(resourceVersionMatch, \"string\", \"\"));\n }\n // Query Params\n if (sendInitialEvents !== undefined) {\n requestContext.setQueryParam(\"sendInitialEvents\", ObjectSerializer.serialize(sendInitialEvents, \"boolean\", \"\"));\n }\n // Query Params\n if (timeoutSeconds !== undefined) {\n requestContext.setQueryParam(\"timeoutSeconds\", ObjectSerializer.serialize(timeoutSeconds, \"number\", \"\"));\n }\n // Query Params\n if (watch !== undefined) {\n requestContext.setQueryParam(\"watch\", ObjectSerializer.serialize(watch, \"boolean\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * list or watch objects of kind StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param allowWatchBookmarks allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param _continue The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param fieldSelector A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param labelSelector A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param limit limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param resourceVersion resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param resourceVersionMatch resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param sendInitialEvents `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param timeoutSeconds Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param watch Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n async listNamespacedStatefulSet(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"listNamespacedStatefulSet\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/statefulsets'\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (allowWatchBookmarks !== undefined) {\n requestContext.setQueryParam(\"allowWatchBookmarks\", ObjectSerializer.serialize(allowWatchBookmarks, \"boolean\", \"\"));\n }\n // Query Params\n if (_continue !== undefined) {\n requestContext.setQueryParam(\"continue\", ObjectSerializer.serialize(_continue, \"string\", \"\"));\n }\n // Query Params\n if (fieldSelector !== undefined) {\n requestContext.setQueryParam(\"fieldSelector\", ObjectSerializer.serialize(fieldSelector, \"string\", \"\"));\n }\n // Query Params\n if (labelSelector !== undefined) {\n requestContext.setQueryParam(\"labelSelector\", ObjectSerializer.serialize(labelSelector, \"string\", \"\"));\n }\n // Query Params\n if (limit !== undefined) {\n requestContext.setQueryParam(\"limit\", ObjectSerializer.serialize(limit, \"number\", \"\"));\n }\n // Query Params\n if (resourceVersion !== undefined) {\n requestContext.setQueryParam(\"resourceVersion\", ObjectSerializer.serialize(resourceVersion, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersionMatch !== undefined) {\n requestContext.setQueryParam(\"resourceVersionMatch\", ObjectSerializer.serialize(resourceVersionMatch, \"string\", \"\"));\n }\n // Query Params\n if (sendInitialEvents !== undefined) {\n requestContext.setQueryParam(\"sendInitialEvents\", ObjectSerializer.serialize(sendInitialEvents, \"boolean\", \"\"));\n }\n // Query Params\n if (timeoutSeconds !== undefined) {\n requestContext.setQueryParam(\"timeoutSeconds\", ObjectSerializer.serialize(timeoutSeconds, \"number\", \"\"));\n }\n // Query Params\n if (watch !== undefined) {\n requestContext.setQueryParam(\"watch\", ObjectSerializer.serialize(watch, \"boolean\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * list or watch objects of kind ReplicaSet\n * @param allowWatchBookmarks allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param _continue The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param fieldSelector A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param labelSelector A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param limit limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param resourceVersion resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param resourceVersionMatch resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param sendInitialEvents `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param timeoutSeconds Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param watch Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n async listReplicaSetForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n var _a;\n let _config = _options || this.configuration;\n // Path Params\n const localVarPath = '/apis/apps/v1/replicasets';\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (allowWatchBookmarks !== undefined) {\n requestContext.setQueryParam(\"allowWatchBookmarks\", ObjectSerializer.serialize(allowWatchBookmarks, \"boolean\", \"\"));\n }\n // Query Params\n if (_continue !== undefined) {\n requestContext.setQueryParam(\"continue\", ObjectSerializer.serialize(_continue, \"string\", \"\"));\n }\n // Query Params\n if (fieldSelector !== undefined) {\n requestContext.setQueryParam(\"fieldSelector\", ObjectSerializer.serialize(fieldSelector, \"string\", \"\"));\n }\n // Query Params\n if (labelSelector !== undefined) {\n requestContext.setQueryParam(\"labelSelector\", ObjectSerializer.serialize(labelSelector, \"string\", \"\"));\n }\n // Query Params\n if (limit !== undefined) {\n requestContext.setQueryParam(\"limit\", ObjectSerializer.serialize(limit, \"number\", \"\"));\n }\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersion !== undefined) {\n requestContext.setQueryParam(\"resourceVersion\", ObjectSerializer.serialize(resourceVersion, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersionMatch !== undefined) {\n requestContext.setQueryParam(\"resourceVersionMatch\", ObjectSerializer.serialize(resourceVersionMatch, \"string\", \"\"));\n }\n // Query Params\n if (sendInitialEvents !== undefined) {\n requestContext.setQueryParam(\"sendInitialEvents\", ObjectSerializer.serialize(sendInitialEvents, \"boolean\", \"\"));\n }\n // Query Params\n if (timeoutSeconds !== undefined) {\n requestContext.setQueryParam(\"timeoutSeconds\", ObjectSerializer.serialize(timeoutSeconds, \"number\", \"\"));\n }\n // Query Params\n if (watch !== undefined) {\n requestContext.setQueryParam(\"watch\", ObjectSerializer.serialize(watch, \"boolean\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * list or watch objects of kind StatefulSet\n * @param allowWatchBookmarks allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param _continue The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param fieldSelector A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param labelSelector A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param limit limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param resourceVersion resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param resourceVersionMatch resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param sendInitialEvents `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param timeoutSeconds Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param watch Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n async listStatefulSetForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n var _a;\n let _config = _options || this.configuration;\n // Path Params\n const localVarPath = '/apis/apps/v1/statefulsets';\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (allowWatchBookmarks !== undefined) {\n requestContext.setQueryParam(\"allowWatchBookmarks\", ObjectSerializer.serialize(allowWatchBookmarks, \"boolean\", \"\"));\n }\n // Query Params\n if (_continue !== undefined) {\n requestContext.setQueryParam(\"continue\", ObjectSerializer.serialize(_continue, \"string\", \"\"));\n }\n // Query Params\n if (fieldSelector !== undefined) {\n requestContext.setQueryParam(\"fieldSelector\", ObjectSerializer.serialize(fieldSelector, \"string\", \"\"));\n }\n // Query Params\n if (labelSelector !== undefined) {\n requestContext.setQueryParam(\"labelSelector\", ObjectSerializer.serialize(labelSelector, \"string\", \"\"));\n }\n // Query Params\n if (limit !== undefined) {\n requestContext.setQueryParam(\"limit\", ObjectSerializer.serialize(limit, \"number\", \"\"));\n }\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersion !== undefined) {\n requestContext.setQueryParam(\"resourceVersion\", ObjectSerializer.serialize(resourceVersion, \"string\", \"\"));\n }\n // Query Params\n if (resourceVersionMatch !== undefined) {\n requestContext.setQueryParam(\"resourceVersionMatch\", ObjectSerializer.serialize(resourceVersionMatch, \"string\", \"\"));\n }\n // Query Params\n if (sendInitialEvents !== undefined) {\n requestContext.setQueryParam(\"sendInitialEvents\", ObjectSerializer.serialize(sendInitialEvents, \"boolean\", \"\"));\n }\n // Query Params\n if (timeoutSeconds !== undefined) {\n requestContext.setQueryParam(\"timeoutSeconds\", ObjectSerializer.serialize(timeoutSeconds, \"number\", \"\"));\n }\n // Query Params\n if (watch !== undefined) {\n requestContext.setQueryParam(\"watch\", ObjectSerializer.serialize(watch, \"boolean\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * partially update the specified ControllerRevision\n * @param name name of the ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param force Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n async patchNamespacedControllerRevision(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedControllerRevision\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedControllerRevision\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedControllerRevision\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PATCH);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Query Params\n if (force !== undefined) {\n requestContext.setQueryParam(\"force\", ObjectSerializer.serialize(force, \"boolean\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([\n \"application/json-patch+json\",\n \"application/merge-patch+json\",\n \"application/strategic-merge-patch+json\",\n \"application/apply-patch+yaml\",\n \"application/apply-patch+cbor\"\n ]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"any\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * partially update the specified DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param force Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n async patchNamespacedDaemonSet(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedDaemonSet\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedDaemonSet\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedDaemonSet\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PATCH);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Query Params\n if (force !== undefined) {\n requestContext.setQueryParam(\"force\", ObjectSerializer.serialize(force, \"boolean\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([\n \"application/json-patch+json\",\n \"application/merge-patch+json\",\n \"application/strategic-merge-patch+json\",\n \"application/apply-patch+yaml\",\n \"application/apply-patch+cbor\"\n ]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"any\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * partially update status of the specified DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param force Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n async patchNamespacedDaemonSetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedDaemonSetStatus\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedDaemonSetStatus\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedDaemonSetStatus\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PATCH);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Query Params\n if (force !== undefined) {\n requestContext.setQueryParam(\"force\", ObjectSerializer.serialize(force, \"boolean\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([\n \"application/json-patch+json\",\n \"application/merge-patch+json\",\n \"application/strategic-merge-patch+json\",\n \"application/apply-patch+yaml\",\n \"application/apply-patch+cbor\"\n ]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"any\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * partially update the specified Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param force Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n async patchNamespacedDeployment(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedDeployment\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedDeployment\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedDeployment\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/deployments/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PATCH);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Query Params\n if (force !== undefined) {\n requestContext.setQueryParam(\"force\", ObjectSerializer.serialize(force, \"boolean\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([\n \"application/json-patch+json\",\n \"application/merge-patch+json\",\n \"application/strategic-merge-patch+json\",\n \"application/apply-patch+yaml\",\n \"application/apply-patch+cbor\"\n ]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"any\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * partially update scale of the specified Deployment\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param force Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n async patchNamespacedDeploymentScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedDeploymentScale\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedDeploymentScale\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedDeploymentScale\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PATCH);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Query Params\n if (force !== undefined) {\n requestContext.setQueryParam(\"force\", ObjectSerializer.serialize(force, \"boolean\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([\n \"application/json-patch+json\",\n \"application/merge-patch+json\",\n \"application/strategic-merge-patch+json\",\n \"application/apply-patch+yaml\",\n \"application/apply-patch+cbor\"\n ]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"any\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * partially update status of the specified Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param force Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n async patchNamespacedDeploymentStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedDeploymentStatus\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedDeploymentStatus\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedDeploymentStatus\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/deployments/{name}/status'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PATCH);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Query Params\n if (force !== undefined) {\n requestContext.setQueryParam(\"force\", ObjectSerializer.serialize(force, \"boolean\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([\n \"application/json-patch+json\",\n \"application/merge-patch+json\",\n \"application/strategic-merge-patch+json\",\n \"application/apply-patch+yaml\",\n \"application/apply-patch+cbor\"\n ]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"any\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * partially update the specified ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param force Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n async patchNamespacedReplicaSet(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedReplicaSet\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedReplicaSet\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedReplicaSet\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/replicasets/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PATCH);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Query Params\n if (force !== undefined) {\n requestContext.setQueryParam(\"force\", ObjectSerializer.serialize(force, \"boolean\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([\n \"application/json-patch+json\",\n \"application/merge-patch+json\",\n \"application/strategic-merge-patch+json\",\n \"application/apply-patch+yaml\",\n \"application/apply-patch+cbor\"\n ]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"any\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * partially update scale of the specified ReplicaSet\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param force Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n async patchNamespacedReplicaSetScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedReplicaSetScale\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedReplicaSetScale\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedReplicaSetScale\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PATCH);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Query Params\n if (force !== undefined) {\n requestContext.setQueryParam(\"force\", ObjectSerializer.serialize(force, \"boolean\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([\n \"application/json-patch+json\",\n \"application/merge-patch+json\",\n \"application/strategic-merge-patch+json\",\n \"application/apply-patch+yaml\",\n \"application/apply-patch+cbor\"\n ]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"any\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * partially update status of the specified ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param force Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n async patchNamespacedReplicaSetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedReplicaSetStatus\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedReplicaSetStatus\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedReplicaSetStatus\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PATCH);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Query Params\n if (force !== undefined) {\n requestContext.setQueryParam(\"force\", ObjectSerializer.serialize(force, \"boolean\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([\n \"application/json-patch+json\",\n \"application/merge-patch+json\",\n \"application/strategic-merge-patch+json\",\n \"application/apply-patch+yaml\",\n \"application/apply-patch+cbor\"\n ]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"any\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * partially update the specified StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param force Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n async patchNamespacedStatefulSet(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedStatefulSet\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedStatefulSet\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedStatefulSet\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PATCH);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Query Params\n if (force !== undefined) {\n requestContext.setQueryParam(\"force\", ObjectSerializer.serialize(force, \"boolean\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([\n \"application/json-patch+json\",\n \"application/merge-patch+json\",\n \"application/strategic-merge-patch+json\",\n \"application/apply-patch+yaml\",\n \"application/apply-patch+cbor\"\n ]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"any\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * partially update scale of the specified StatefulSet\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param force Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n async patchNamespacedStatefulSetScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedStatefulSetScale\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedStatefulSetScale\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedStatefulSetScale\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PATCH);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Query Params\n if (force !== undefined) {\n requestContext.setQueryParam(\"force\", ObjectSerializer.serialize(force, \"boolean\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([\n \"application/json-patch+json\",\n \"application/merge-patch+json\",\n \"application/strategic-merge-patch+json\",\n \"application/apply-patch+yaml\",\n \"application/apply-patch+cbor\"\n ]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"any\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * partially update status of the specified StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param force Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n async patchNamespacedStatefulSetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedStatefulSetStatus\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedStatefulSetStatus\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"patchNamespacedStatefulSetStatus\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PATCH);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Query Params\n if (force !== undefined) {\n requestContext.setQueryParam(\"force\", ObjectSerializer.serialize(force, \"boolean\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([\n \"application/json-patch+json\",\n \"application/merge-patch+json\",\n \"application/strategic-merge-patch+json\",\n \"application/apply-patch+yaml\",\n \"application/apply-patch+cbor\"\n ]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"any\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * read the specified ControllerRevision\n * @param name name of the ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n async readNamespacedControllerRevision(name, namespace, pretty, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedControllerRevision\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedControllerRevision\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * read the specified DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n async readNamespacedDaemonSet(name, namespace, pretty, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedDaemonSet\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedDaemonSet\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * read status of the specified DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n async readNamespacedDaemonSetStatus(name, namespace, pretty, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedDaemonSetStatus\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedDaemonSetStatus\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * read the specified Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n async readNamespacedDeployment(name, namespace, pretty, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedDeployment\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedDeployment\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/deployments/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * read scale of the specified Deployment\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n async readNamespacedDeploymentScale(name, namespace, pretty, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedDeploymentScale\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedDeploymentScale\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * read status of the specified Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n async readNamespacedDeploymentStatus(name, namespace, pretty, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedDeploymentStatus\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedDeploymentStatus\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/deployments/{name}/status'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * read the specified ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n async readNamespacedReplicaSet(name, namespace, pretty, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedReplicaSet\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedReplicaSet\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/replicasets/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * read scale of the specified ReplicaSet\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n async readNamespacedReplicaSetScale(name, namespace, pretty, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedReplicaSetScale\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedReplicaSetScale\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * read status of the specified ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n async readNamespacedReplicaSetStatus(name, namespace, pretty, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedReplicaSetStatus\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedReplicaSetStatus\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * read the specified StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n async readNamespacedStatefulSet(name, namespace, pretty, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedStatefulSet\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedStatefulSet\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * read scale of the specified StatefulSet\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n async readNamespacedStatefulSetScale(name, namespace, pretty, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedStatefulSetScale\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedStatefulSetScale\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * read status of the specified StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n async readNamespacedStatefulSetStatus(name, namespace, pretty, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedStatefulSetStatus\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"readNamespacedStatefulSetStatus\", \"namespace\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * replace the specified ControllerRevision\n * @param name name of the ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n async replaceNamespacedControllerRevision(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedControllerRevision\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedControllerRevision\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedControllerRevision\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PUT);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1ControllerRevision\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * replace the specified DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n async replaceNamespacedDaemonSet(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedDaemonSet\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedDaemonSet\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedDaemonSet\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PUT);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1DaemonSet\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * replace status of the specified DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n async replaceNamespacedDaemonSetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedDaemonSetStatus\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedDaemonSetStatus\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedDaemonSetStatus\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PUT);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1DaemonSet\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * replace the specified Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n async replaceNamespacedDeployment(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedDeployment\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedDeployment\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedDeployment\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/deployments/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PUT);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1Deployment\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * replace scale of the specified Deployment\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n async replaceNamespacedDeploymentScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedDeploymentScale\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedDeploymentScale\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedDeploymentScale\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PUT);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1Scale\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * replace status of the specified Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n async replaceNamespacedDeploymentStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedDeploymentStatus\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedDeploymentStatus\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedDeploymentStatus\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/deployments/{name}/status'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PUT);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1Deployment\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * replace the specified ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n async replaceNamespacedReplicaSet(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedReplicaSet\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedReplicaSet\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedReplicaSet\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/replicasets/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PUT);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1ReplicaSet\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * replace scale of the specified ReplicaSet\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n async replaceNamespacedReplicaSetScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedReplicaSetScale\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedReplicaSetScale\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedReplicaSetScale\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PUT);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1Scale\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * replace status of the specified ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n async replaceNamespacedReplicaSetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedReplicaSetStatus\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedReplicaSetStatus\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedReplicaSetStatus\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PUT);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1ReplicaSet\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * replace the specified StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n async replaceNamespacedStatefulSet(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedStatefulSet\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedStatefulSet\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedStatefulSet\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PUT);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1StatefulSet\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * replace scale of the specified StatefulSet\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n async replaceNamespacedStatefulSetScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedStatefulSetScale\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedStatefulSetScale\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedStatefulSetScale\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PUT);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1Scale\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n /**\n * replace status of the specified StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param pretty If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param fieldValidation fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n async replaceNamespacedStatefulSetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n var _a;\n let _config = _options || this.configuration;\n // verify required parameter 'name' is not null or undefined\n if (name === null || name === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedStatefulSetStatus\", \"name\");\n }\n // verify required parameter 'namespace' is not null or undefined\n if (namespace === null || namespace === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedStatefulSetStatus\", \"namespace\");\n }\n // verify required parameter 'body' is not null or undefined\n if (body === null || body === undefined) {\n throw new RequiredError(\"AppsV1Api\", \"replaceNamespacedStatefulSetStatus\", \"body\");\n }\n // Path Params\n const localVarPath = '/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status'\n .replace('{' + 'name' + '}', encodeURIComponent(String(name)))\n .replace('{' + 'namespace' + '}', encodeURIComponent(String(namespace)));\n // Make Request Context\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PUT);\n requestContext.setHeaderParam(\"Accept\", \"application/json, */*;q=0.8\");\n // Query Params\n if (pretty !== undefined) {\n requestContext.setQueryParam(\"pretty\", ObjectSerializer.serialize(pretty, \"string\", \"\"));\n }\n // Query Params\n if (dryRun !== undefined) {\n requestContext.setQueryParam(\"dryRun\", ObjectSerializer.serialize(dryRun, \"string\", \"\"));\n }\n // Query Params\n if (fieldManager !== undefined) {\n requestContext.setQueryParam(\"fieldManager\", ObjectSerializer.serialize(fieldManager, \"string\", \"\"));\n }\n // Query Params\n if (fieldValidation !== undefined) {\n requestContext.setQueryParam(\"fieldValidation\", ObjectSerializer.serialize(fieldValidation, \"string\", \"\"));\n }\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam(\"Content-Type\", contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, \"V1StatefulSet\", \"\"), contentType);\n requestContext.setBody(serializedBody);\n let authMethod;\n // Apply auth methods\n authMethod = _config.authMethods[\"BearerToken\"];\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = (_a = _config === null || _config === void 0 ? void 0 : _config.authMethods) === null || _a === void 0 ? void 0 : _a.default;\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n return requestContext;\n }\n}\nexport class AppsV1ApiResponseProcessor {\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to createNamespacedControllerRevision\n * @throws ApiException if the response code was not in [200, 299]\n */\n async createNamespacedControllerRevisionWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ControllerRevision\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ControllerRevision\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"202\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ControllerRevision\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ControllerRevision\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to createNamespacedDaemonSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async createNamespacedDaemonSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"202\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to createNamespacedDeployment\n * @throws ApiException if the response code was not in [200, 299]\n */\n async createNamespacedDeploymentWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"202\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to createNamespacedReplicaSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async createNamespacedReplicaSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"202\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to createNamespacedStatefulSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async createNamespacedStatefulSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"202\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to deleteCollectionNamespacedControllerRevision\n * @throws ApiException if the response code was not in [200, 299]\n */\n async deleteCollectionNamespacedControllerRevisionWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to deleteCollectionNamespacedDaemonSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async deleteCollectionNamespacedDaemonSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to deleteCollectionNamespacedDeployment\n * @throws ApiException if the response code was not in [200, 299]\n */\n async deleteCollectionNamespacedDeploymentWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to deleteCollectionNamespacedReplicaSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async deleteCollectionNamespacedReplicaSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to deleteCollectionNamespacedStatefulSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async deleteCollectionNamespacedStatefulSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to deleteNamespacedControllerRevision\n * @throws ApiException if the response code was not in [200, 299]\n */\n async deleteNamespacedControllerRevisionWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"202\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to deleteNamespacedDaemonSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async deleteNamespacedDaemonSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"202\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to deleteNamespacedDeployment\n * @throws ApiException if the response code was not in [200, 299]\n */\n async deleteNamespacedDeploymentWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"202\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to deleteNamespacedReplicaSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async deleteNamespacedReplicaSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"202\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to deleteNamespacedStatefulSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async deleteNamespacedStatefulSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"202\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Status\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to getAPIResources\n * @throws ApiException if the response code was not in [200, 299]\n */\n async getAPIResourcesWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1APIResourceList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1APIResourceList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to listControllerRevisionForAllNamespaces\n * @throws ApiException if the response code was not in [200, 299]\n */\n async listControllerRevisionForAllNamespacesWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ControllerRevisionList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ControllerRevisionList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to listDaemonSetForAllNamespaces\n * @throws ApiException if the response code was not in [200, 299]\n */\n async listDaemonSetForAllNamespacesWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSetList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSetList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to listDeploymentForAllNamespaces\n * @throws ApiException if the response code was not in [200, 299]\n */\n async listDeploymentForAllNamespacesWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DeploymentList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DeploymentList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to listNamespacedControllerRevision\n * @throws ApiException if the response code was not in [200, 299]\n */\n async listNamespacedControllerRevisionWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ControllerRevisionList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ControllerRevisionList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to listNamespacedDaemonSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async listNamespacedDaemonSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSetList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSetList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to listNamespacedDeployment\n * @throws ApiException if the response code was not in [200, 299]\n */\n async listNamespacedDeploymentWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DeploymentList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DeploymentList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to listNamespacedReplicaSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async listNamespacedReplicaSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSetList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSetList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to listNamespacedStatefulSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async listNamespacedStatefulSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSetList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSetList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to listReplicaSetForAllNamespaces\n * @throws ApiException if the response code was not in [200, 299]\n */\n async listReplicaSetForAllNamespacesWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSetList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSetList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to listStatefulSetForAllNamespaces\n * @throws ApiException if the response code was not in [200, 299]\n */\n async listStatefulSetForAllNamespacesWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSetList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSetList\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to patchNamespacedControllerRevision\n * @throws ApiException if the response code was not in [200, 299]\n */\n async patchNamespacedControllerRevisionWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ControllerRevision\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ControllerRevision\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ControllerRevision\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to patchNamespacedDaemonSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async patchNamespacedDaemonSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to patchNamespacedDaemonSetStatus\n * @throws ApiException if the response code was not in [200, 299]\n */\n async patchNamespacedDaemonSetStatusWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to patchNamespacedDeployment\n * @throws ApiException if the response code was not in [200, 299]\n */\n async patchNamespacedDeploymentWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to patchNamespacedDeploymentScale\n * @throws ApiException if the response code was not in [200, 299]\n */\n async patchNamespacedDeploymentScaleWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to patchNamespacedDeploymentStatus\n * @throws ApiException if the response code was not in [200, 299]\n */\n async patchNamespacedDeploymentStatusWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to patchNamespacedReplicaSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async patchNamespacedReplicaSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to patchNamespacedReplicaSetScale\n * @throws ApiException if the response code was not in [200, 299]\n */\n async patchNamespacedReplicaSetScaleWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to patchNamespacedReplicaSetStatus\n * @throws ApiException if the response code was not in [200, 299]\n */\n async patchNamespacedReplicaSetStatusWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to patchNamespacedStatefulSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async patchNamespacedStatefulSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to patchNamespacedStatefulSetScale\n * @throws ApiException if the response code was not in [200, 299]\n */\n async patchNamespacedStatefulSetScaleWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to patchNamespacedStatefulSetStatus\n * @throws ApiException if the response code was not in [200, 299]\n */\n async patchNamespacedStatefulSetStatusWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to readNamespacedControllerRevision\n * @throws ApiException if the response code was not in [200, 299]\n */\n async readNamespacedControllerRevisionWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ControllerRevision\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ControllerRevision\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to readNamespacedDaemonSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async readNamespacedDaemonSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to readNamespacedDaemonSetStatus\n * @throws ApiException if the response code was not in [200, 299]\n */\n async readNamespacedDaemonSetStatusWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to readNamespacedDeployment\n * @throws ApiException if the response code was not in [200, 299]\n */\n async readNamespacedDeploymentWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to readNamespacedDeploymentScale\n * @throws ApiException if the response code was not in [200, 299]\n */\n async readNamespacedDeploymentScaleWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to readNamespacedDeploymentStatus\n * @throws ApiException if the response code was not in [200, 299]\n */\n async readNamespacedDeploymentStatusWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to readNamespacedReplicaSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async readNamespacedReplicaSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to readNamespacedReplicaSetScale\n * @throws ApiException if the response code was not in [200, 299]\n */\n async readNamespacedReplicaSetScaleWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to readNamespacedReplicaSetStatus\n * @throws ApiException if the response code was not in [200, 299]\n */\n async readNamespacedReplicaSetStatusWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to readNamespacedStatefulSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async readNamespacedStatefulSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to readNamespacedStatefulSetScale\n * @throws ApiException if the response code was not in [200, 299]\n */\n async readNamespacedStatefulSetScaleWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to readNamespacedStatefulSetStatus\n * @throws ApiException if the response code was not in [200, 299]\n */\n async readNamespacedStatefulSetStatusWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to replaceNamespacedControllerRevision\n * @throws ApiException if the response code was not in [200, 299]\n */\n async replaceNamespacedControllerRevisionWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ControllerRevision\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ControllerRevision\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ControllerRevision\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to replaceNamespacedDaemonSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async replaceNamespacedDaemonSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to replaceNamespacedDaemonSetStatus\n * @throws ApiException if the response code was not in [200, 299]\n */\n async replaceNamespacedDaemonSetStatusWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1DaemonSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to replaceNamespacedDeployment\n * @throws ApiException if the response code was not in [200, 299]\n */\n async replaceNamespacedDeploymentWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to replaceNamespacedDeploymentScale\n * @throws ApiException if the response code was not in [200, 299]\n */\n async replaceNamespacedDeploymentScaleWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to replaceNamespacedDeploymentStatus\n * @throws ApiException if the response code was not in [200, 299]\n */\n async replaceNamespacedDeploymentStatusWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Deployment\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to replaceNamespacedReplicaSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async replaceNamespacedReplicaSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to replaceNamespacedReplicaSetScale\n * @throws ApiException if the response code was not in [200, 299]\n */\n async replaceNamespacedReplicaSetScaleWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to replaceNamespacedReplicaSetStatus\n * @throws ApiException if the response code was not in [200, 299]\n */\n async replaceNamespacedReplicaSetStatusWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1ReplicaSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to replaceNamespacedStatefulSet\n * @throws ApiException if the response code was not in [200, 299]\n */\n async replaceNamespacedStatefulSetWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to replaceNamespacedStatefulSetScale\n * @throws ApiException if the response code was not in [200, 299]\n */\n async replaceNamespacedStatefulSetScaleWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1Scale\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n /**\n * Unwraps the actual response sent by the server from the response context and deserializes the response content\n * to the expected objects\n *\n * @params response Response returned by the server for a request to replaceNamespacedStatefulSetStatus\n * @throws ApiException if the response code was not in [200, 299]\n */\n async replaceNamespacedStatefulSetStatusWithHttpInfo(response) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers[\"content-type\"]);\n if (isCodeInRange(\"200\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"201\", response.httpStatusCode)) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n if (isCodeInRange(\"401\", response.httpStatusCode)) {\n throw new ApiException(response.httpStatusCode, \"Unauthorized\", undefined, response.headers);\n }\n // Work around for missing responses in specification, e.g. for petstore.yaml\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const body = ObjectSerializer.deserialize(ObjectSerializer.parse(await response.body.text(), contentType), \"V1StatefulSet\", \"\");\n return new HttpInfo(response.httpStatusCode, response.headers, response.body, body);\n }\n throw new ApiException(response.httpStatusCode, \"Unknown API Status Code!\", await response.getBodyAsAny(), response.headers);\n }\n}\n//# sourceMappingURL=AppsV1Api.js.map","import { of, from } from '../rxjsStub.js';\nimport { mergeMap, map } from '../rxjsStub.js';\nimport { AdmissionregistrationApiRequestFactory, AdmissionregistrationApiResponseProcessor } from \"../apis/AdmissionregistrationApi.js\";\nexport class ObservableAdmissionregistrationApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new AdmissionregistrationApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new AdmissionregistrationApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { AdmissionregistrationV1ApiRequestFactory, AdmissionregistrationV1ApiResponseProcessor } from \"../apis/AdmissionregistrationV1Api.js\";\nexport class ObservableAdmissionregistrationV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new AdmissionregistrationV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new AdmissionregistrationV1ApiResponseProcessor();\n }\n /**\n * create a MutatingWebhookConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createMutatingWebhookConfigurationWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createMutatingWebhookConfiguration(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createMutatingWebhookConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a MutatingWebhookConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createMutatingWebhookConfiguration(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createMutatingWebhookConfigurationWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createValidatingAdmissionPolicyWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createValidatingAdmissionPolicy(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createValidatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createValidatingAdmissionPolicy(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createValidatingAdmissionPolicyWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ValidatingAdmissionPolicyBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createValidatingAdmissionPolicyBindingWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createValidatingAdmissionPolicyBinding(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createValidatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ValidatingAdmissionPolicyBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createValidatingAdmissionPolicyBinding(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createValidatingAdmissionPolicyBindingWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ValidatingWebhookConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createValidatingWebhookConfigurationWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createValidatingWebhookConfiguration(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createValidatingWebhookConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ValidatingWebhookConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createValidatingWebhookConfiguration(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createValidatingWebhookConfigurationWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of MutatingWebhookConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionMutatingWebhookConfigurationWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionMutatingWebhookConfiguration(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionMutatingWebhookConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of MutatingWebhookConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionMutatingWebhookConfiguration(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionMutatingWebhookConfigurationWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionValidatingAdmissionPolicyWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionValidatingAdmissionPolicy(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionValidatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionValidatingAdmissionPolicy(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionValidatingAdmissionPolicyWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ValidatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionValidatingAdmissionPolicyBindingWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionValidatingAdmissionPolicyBinding(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionValidatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ValidatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionValidatingAdmissionPolicyBinding(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionValidatingAdmissionPolicyBindingWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ValidatingWebhookConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionValidatingWebhookConfigurationWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionValidatingWebhookConfiguration(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionValidatingWebhookConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ValidatingWebhookConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionValidatingWebhookConfiguration(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionValidatingWebhookConfigurationWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a MutatingWebhookConfiguration\n * @param name name of the MutatingWebhookConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteMutatingWebhookConfigurationWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteMutatingWebhookConfiguration(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteMutatingWebhookConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a MutatingWebhookConfiguration\n * @param name name of the MutatingWebhookConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteMutatingWebhookConfiguration(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteMutatingWebhookConfigurationWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteValidatingAdmissionPolicyWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteValidatingAdmissionPolicy(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteValidatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteValidatingAdmissionPolicy(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteValidatingAdmissionPolicyWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ValidatingAdmissionPolicyBinding\n * @param name name of the ValidatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteValidatingAdmissionPolicyBindingWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteValidatingAdmissionPolicyBinding(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteValidatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ValidatingAdmissionPolicyBinding\n * @param name name of the ValidatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteValidatingAdmissionPolicyBinding(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteValidatingAdmissionPolicyBindingWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ValidatingWebhookConfiguration\n * @param name name of the ValidatingWebhookConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteValidatingWebhookConfigurationWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteValidatingWebhookConfiguration(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteValidatingWebhookConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ValidatingWebhookConfiguration\n * @param name name of the ValidatingWebhookConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteValidatingWebhookConfiguration(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteValidatingWebhookConfigurationWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind MutatingWebhookConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listMutatingWebhookConfigurationWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listMutatingWebhookConfiguration(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listMutatingWebhookConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind MutatingWebhookConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listMutatingWebhookConfiguration(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listMutatingWebhookConfigurationWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listValidatingAdmissionPolicyWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listValidatingAdmissionPolicy(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listValidatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listValidatingAdmissionPolicy(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listValidatingAdmissionPolicyWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ValidatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listValidatingAdmissionPolicyBindingWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listValidatingAdmissionPolicyBinding(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listValidatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ValidatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listValidatingAdmissionPolicyBinding(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listValidatingAdmissionPolicyBindingWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ValidatingWebhookConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listValidatingWebhookConfigurationWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listValidatingWebhookConfiguration(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listValidatingWebhookConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ValidatingWebhookConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listValidatingWebhookConfiguration(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listValidatingWebhookConfigurationWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified MutatingWebhookConfiguration\n * @param name name of the MutatingWebhookConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchMutatingWebhookConfigurationWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchMutatingWebhookConfiguration(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchMutatingWebhookConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified MutatingWebhookConfiguration\n * @param name name of the MutatingWebhookConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchMutatingWebhookConfiguration(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchMutatingWebhookConfigurationWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchValidatingAdmissionPolicyWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchValidatingAdmissionPolicy(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchValidatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchValidatingAdmissionPolicy(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchValidatingAdmissionPolicyWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ValidatingAdmissionPolicyBinding\n * @param name name of the ValidatingAdmissionPolicyBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchValidatingAdmissionPolicyBindingWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchValidatingAdmissionPolicyBinding(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchValidatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ValidatingAdmissionPolicyBinding\n * @param name name of the ValidatingAdmissionPolicyBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchValidatingAdmissionPolicyBinding(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchValidatingAdmissionPolicyBindingWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchValidatingAdmissionPolicyStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchValidatingAdmissionPolicyStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchValidatingAdmissionPolicyStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchValidatingAdmissionPolicyStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchValidatingAdmissionPolicyStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ValidatingWebhookConfiguration\n * @param name name of the ValidatingWebhookConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchValidatingWebhookConfigurationWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchValidatingWebhookConfiguration(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchValidatingWebhookConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ValidatingWebhookConfiguration\n * @param name name of the ValidatingWebhookConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchValidatingWebhookConfiguration(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchValidatingWebhookConfigurationWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified MutatingWebhookConfiguration\n * @param name name of the MutatingWebhookConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readMutatingWebhookConfigurationWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readMutatingWebhookConfiguration(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readMutatingWebhookConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified MutatingWebhookConfiguration\n * @param name name of the MutatingWebhookConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readMutatingWebhookConfiguration(name, pretty, _options) {\n return this.readMutatingWebhookConfigurationWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readValidatingAdmissionPolicyWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readValidatingAdmissionPolicy(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readValidatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readValidatingAdmissionPolicy(name, pretty, _options) {\n return this.readValidatingAdmissionPolicyWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ValidatingAdmissionPolicyBinding\n * @param name name of the ValidatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readValidatingAdmissionPolicyBindingWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readValidatingAdmissionPolicyBinding(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readValidatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ValidatingAdmissionPolicyBinding\n * @param name name of the ValidatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readValidatingAdmissionPolicyBinding(name, pretty, _options) {\n return this.readValidatingAdmissionPolicyBindingWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readValidatingAdmissionPolicyStatusWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readValidatingAdmissionPolicyStatus(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readValidatingAdmissionPolicyStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readValidatingAdmissionPolicyStatus(name, pretty, _options) {\n return this.readValidatingAdmissionPolicyStatusWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ValidatingWebhookConfiguration\n * @param name name of the ValidatingWebhookConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readValidatingWebhookConfigurationWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readValidatingWebhookConfiguration(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readValidatingWebhookConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ValidatingWebhookConfiguration\n * @param name name of the ValidatingWebhookConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readValidatingWebhookConfiguration(name, pretty, _options) {\n return this.readValidatingWebhookConfigurationWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified MutatingWebhookConfiguration\n * @param name name of the MutatingWebhookConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceMutatingWebhookConfigurationWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceMutatingWebhookConfiguration(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceMutatingWebhookConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified MutatingWebhookConfiguration\n * @param name name of the MutatingWebhookConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceMutatingWebhookConfiguration(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceMutatingWebhookConfigurationWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceValidatingAdmissionPolicyWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceValidatingAdmissionPolicy(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceValidatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceValidatingAdmissionPolicy(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceValidatingAdmissionPolicyWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ValidatingAdmissionPolicyBinding\n * @param name name of the ValidatingAdmissionPolicyBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceValidatingAdmissionPolicyBindingWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceValidatingAdmissionPolicyBinding(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceValidatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ValidatingAdmissionPolicyBinding\n * @param name name of the ValidatingAdmissionPolicyBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceValidatingAdmissionPolicyBinding(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceValidatingAdmissionPolicyBindingWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceValidatingAdmissionPolicyStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceValidatingAdmissionPolicyStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceValidatingAdmissionPolicyStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceValidatingAdmissionPolicyStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceValidatingAdmissionPolicyStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ValidatingWebhookConfiguration\n * @param name name of the ValidatingWebhookConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceValidatingWebhookConfigurationWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceValidatingWebhookConfiguration(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceValidatingWebhookConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ValidatingWebhookConfiguration\n * @param name name of the ValidatingWebhookConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceValidatingWebhookConfiguration(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceValidatingWebhookConfigurationWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { AdmissionregistrationV1alpha1ApiRequestFactory, AdmissionregistrationV1alpha1ApiResponseProcessor } from \"../apis/AdmissionregistrationV1alpha1Api.js\";\nexport class ObservableAdmissionregistrationV1alpha1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new AdmissionregistrationV1alpha1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new AdmissionregistrationV1alpha1ApiResponseProcessor();\n }\n /**\n * create a MutatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createMutatingAdmissionPolicyWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createMutatingAdmissionPolicy(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createMutatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a MutatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createMutatingAdmissionPolicy(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createMutatingAdmissionPolicyWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a MutatingAdmissionPolicyBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createMutatingAdmissionPolicyBindingWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createMutatingAdmissionPolicyBinding(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createMutatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a MutatingAdmissionPolicyBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createMutatingAdmissionPolicyBinding(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createMutatingAdmissionPolicyBindingWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of MutatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionMutatingAdmissionPolicyWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionMutatingAdmissionPolicy(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionMutatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of MutatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionMutatingAdmissionPolicy(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionMutatingAdmissionPolicyWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of MutatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionMutatingAdmissionPolicyBindingWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionMutatingAdmissionPolicyBinding(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionMutatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of MutatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionMutatingAdmissionPolicyBinding(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionMutatingAdmissionPolicyBindingWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a MutatingAdmissionPolicy\n * @param name name of the MutatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteMutatingAdmissionPolicyWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteMutatingAdmissionPolicy(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteMutatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a MutatingAdmissionPolicy\n * @param name name of the MutatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteMutatingAdmissionPolicy(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteMutatingAdmissionPolicyWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a MutatingAdmissionPolicyBinding\n * @param name name of the MutatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteMutatingAdmissionPolicyBindingWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteMutatingAdmissionPolicyBinding(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteMutatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a MutatingAdmissionPolicyBinding\n * @param name name of the MutatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteMutatingAdmissionPolicyBinding(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteMutatingAdmissionPolicyBindingWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind MutatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listMutatingAdmissionPolicyWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listMutatingAdmissionPolicy(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listMutatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind MutatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listMutatingAdmissionPolicy(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listMutatingAdmissionPolicyWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind MutatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listMutatingAdmissionPolicyBindingWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listMutatingAdmissionPolicyBinding(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listMutatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind MutatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listMutatingAdmissionPolicyBinding(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listMutatingAdmissionPolicyBindingWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified MutatingAdmissionPolicy\n * @param name name of the MutatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchMutatingAdmissionPolicyWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchMutatingAdmissionPolicy(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchMutatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified MutatingAdmissionPolicy\n * @param name name of the MutatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchMutatingAdmissionPolicy(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchMutatingAdmissionPolicyWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified MutatingAdmissionPolicyBinding\n * @param name name of the MutatingAdmissionPolicyBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchMutatingAdmissionPolicyBindingWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchMutatingAdmissionPolicyBinding(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchMutatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified MutatingAdmissionPolicyBinding\n * @param name name of the MutatingAdmissionPolicyBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchMutatingAdmissionPolicyBinding(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchMutatingAdmissionPolicyBindingWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified MutatingAdmissionPolicy\n * @param name name of the MutatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readMutatingAdmissionPolicyWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readMutatingAdmissionPolicy(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readMutatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified MutatingAdmissionPolicy\n * @param name name of the MutatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readMutatingAdmissionPolicy(name, pretty, _options) {\n return this.readMutatingAdmissionPolicyWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified MutatingAdmissionPolicyBinding\n * @param name name of the MutatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readMutatingAdmissionPolicyBindingWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readMutatingAdmissionPolicyBinding(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readMutatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified MutatingAdmissionPolicyBinding\n * @param name name of the MutatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readMutatingAdmissionPolicyBinding(name, pretty, _options) {\n return this.readMutatingAdmissionPolicyBindingWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified MutatingAdmissionPolicy\n * @param name name of the MutatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceMutatingAdmissionPolicyWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceMutatingAdmissionPolicy(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceMutatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified MutatingAdmissionPolicy\n * @param name name of the MutatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceMutatingAdmissionPolicy(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceMutatingAdmissionPolicyWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified MutatingAdmissionPolicyBinding\n * @param name name of the MutatingAdmissionPolicyBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceMutatingAdmissionPolicyBindingWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceMutatingAdmissionPolicyBinding(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceMutatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified MutatingAdmissionPolicyBinding\n * @param name name of the MutatingAdmissionPolicyBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceMutatingAdmissionPolicyBinding(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceMutatingAdmissionPolicyBindingWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { AdmissionregistrationV1beta1ApiRequestFactory, AdmissionregistrationV1beta1ApiResponseProcessor } from \"../apis/AdmissionregistrationV1beta1Api.js\";\nexport class ObservableAdmissionregistrationV1beta1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new AdmissionregistrationV1beta1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new AdmissionregistrationV1beta1ApiResponseProcessor();\n }\n /**\n * create a ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createValidatingAdmissionPolicyWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createValidatingAdmissionPolicy(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createValidatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createValidatingAdmissionPolicy(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createValidatingAdmissionPolicyWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ValidatingAdmissionPolicyBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createValidatingAdmissionPolicyBindingWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createValidatingAdmissionPolicyBinding(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createValidatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ValidatingAdmissionPolicyBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createValidatingAdmissionPolicyBinding(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createValidatingAdmissionPolicyBindingWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionValidatingAdmissionPolicyWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionValidatingAdmissionPolicy(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionValidatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionValidatingAdmissionPolicy(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionValidatingAdmissionPolicyWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ValidatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionValidatingAdmissionPolicyBindingWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionValidatingAdmissionPolicyBinding(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionValidatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ValidatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionValidatingAdmissionPolicyBinding(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionValidatingAdmissionPolicyBindingWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteValidatingAdmissionPolicyWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteValidatingAdmissionPolicy(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteValidatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteValidatingAdmissionPolicy(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteValidatingAdmissionPolicyWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ValidatingAdmissionPolicyBinding\n * @param name name of the ValidatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteValidatingAdmissionPolicyBindingWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteValidatingAdmissionPolicyBinding(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteValidatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ValidatingAdmissionPolicyBinding\n * @param name name of the ValidatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteValidatingAdmissionPolicyBinding(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteValidatingAdmissionPolicyBindingWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listValidatingAdmissionPolicyWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listValidatingAdmissionPolicy(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listValidatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listValidatingAdmissionPolicy(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listValidatingAdmissionPolicyWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ValidatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listValidatingAdmissionPolicyBindingWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listValidatingAdmissionPolicyBinding(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listValidatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ValidatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listValidatingAdmissionPolicyBinding(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listValidatingAdmissionPolicyBindingWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchValidatingAdmissionPolicyWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchValidatingAdmissionPolicy(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchValidatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchValidatingAdmissionPolicy(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchValidatingAdmissionPolicyWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ValidatingAdmissionPolicyBinding\n * @param name name of the ValidatingAdmissionPolicyBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchValidatingAdmissionPolicyBindingWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchValidatingAdmissionPolicyBinding(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchValidatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ValidatingAdmissionPolicyBinding\n * @param name name of the ValidatingAdmissionPolicyBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchValidatingAdmissionPolicyBinding(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchValidatingAdmissionPolicyBindingWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchValidatingAdmissionPolicyStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchValidatingAdmissionPolicyStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchValidatingAdmissionPolicyStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchValidatingAdmissionPolicyStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchValidatingAdmissionPolicyStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readValidatingAdmissionPolicyWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readValidatingAdmissionPolicy(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readValidatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readValidatingAdmissionPolicy(name, pretty, _options) {\n return this.readValidatingAdmissionPolicyWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ValidatingAdmissionPolicyBinding\n * @param name name of the ValidatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readValidatingAdmissionPolicyBindingWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readValidatingAdmissionPolicyBinding(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readValidatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ValidatingAdmissionPolicyBinding\n * @param name name of the ValidatingAdmissionPolicyBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readValidatingAdmissionPolicyBinding(name, pretty, _options) {\n return this.readValidatingAdmissionPolicyBindingWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readValidatingAdmissionPolicyStatusWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readValidatingAdmissionPolicyStatus(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readValidatingAdmissionPolicyStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readValidatingAdmissionPolicyStatus(name, pretty, _options) {\n return this.readValidatingAdmissionPolicyStatusWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceValidatingAdmissionPolicyWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceValidatingAdmissionPolicy(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceValidatingAdmissionPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceValidatingAdmissionPolicy(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceValidatingAdmissionPolicyWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ValidatingAdmissionPolicyBinding\n * @param name name of the ValidatingAdmissionPolicyBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceValidatingAdmissionPolicyBindingWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceValidatingAdmissionPolicyBinding(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceValidatingAdmissionPolicyBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ValidatingAdmissionPolicyBinding\n * @param name name of the ValidatingAdmissionPolicyBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceValidatingAdmissionPolicyBinding(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceValidatingAdmissionPolicyBindingWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceValidatingAdmissionPolicyStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceValidatingAdmissionPolicyStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceValidatingAdmissionPolicyStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified ValidatingAdmissionPolicy\n * @param name name of the ValidatingAdmissionPolicy\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceValidatingAdmissionPolicyStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceValidatingAdmissionPolicyStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { ApiextensionsApiRequestFactory, ApiextensionsApiResponseProcessor } from \"../apis/ApiextensionsApi.js\";\nexport class ObservableApiextensionsApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new ApiextensionsApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new ApiextensionsApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { ApiextensionsV1ApiRequestFactory, ApiextensionsV1ApiResponseProcessor } from \"../apis/ApiextensionsV1Api.js\";\nexport class ObservableApiextensionsV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new ApiextensionsV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new ApiextensionsV1ApiResponseProcessor();\n }\n /**\n * create a CustomResourceDefinition\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createCustomResourceDefinitionWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createCustomResourceDefinition(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createCustomResourceDefinitionWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a CustomResourceDefinition\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createCustomResourceDefinition(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createCustomResourceDefinitionWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of CustomResourceDefinition\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionCustomResourceDefinitionWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionCustomResourceDefinition(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionCustomResourceDefinitionWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of CustomResourceDefinition\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionCustomResourceDefinition(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionCustomResourceDefinitionWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a CustomResourceDefinition\n * @param name name of the CustomResourceDefinition\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteCustomResourceDefinitionWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCustomResourceDefinition(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCustomResourceDefinitionWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a CustomResourceDefinition\n * @param name name of the CustomResourceDefinition\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteCustomResourceDefinition(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteCustomResourceDefinitionWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind CustomResourceDefinition\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listCustomResourceDefinitionWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listCustomResourceDefinition(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listCustomResourceDefinitionWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind CustomResourceDefinition\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listCustomResourceDefinition(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listCustomResourceDefinitionWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified CustomResourceDefinition\n * @param name name of the CustomResourceDefinition\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchCustomResourceDefinitionWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchCustomResourceDefinition(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchCustomResourceDefinitionWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified CustomResourceDefinition\n * @param name name of the CustomResourceDefinition\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchCustomResourceDefinition(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchCustomResourceDefinitionWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified CustomResourceDefinition\n * @param name name of the CustomResourceDefinition\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchCustomResourceDefinitionStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchCustomResourceDefinitionStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchCustomResourceDefinitionStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified CustomResourceDefinition\n * @param name name of the CustomResourceDefinition\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchCustomResourceDefinitionStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchCustomResourceDefinitionStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified CustomResourceDefinition\n * @param name name of the CustomResourceDefinition\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readCustomResourceDefinitionWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readCustomResourceDefinition(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readCustomResourceDefinitionWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified CustomResourceDefinition\n * @param name name of the CustomResourceDefinition\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readCustomResourceDefinition(name, pretty, _options) {\n return this.readCustomResourceDefinitionWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified CustomResourceDefinition\n * @param name name of the CustomResourceDefinition\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readCustomResourceDefinitionStatusWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readCustomResourceDefinitionStatus(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readCustomResourceDefinitionStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified CustomResourceDefinition\n * @param name name of the CustomResourceDefinition\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readCustomResourceDefinitionStatus(name, pretty, _options) {\n return this.readCustomResourceDefinitionStatusWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified CustomResourceDefinition\n * @param name name of the CustomResourceDefinition\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceCustomResourceDefinitionWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceCustomResourceDefinition(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceCustomResourceDefinitionWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified CustomResourceDefinition\n * @param name name of the CustomResourceDefinition\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceCustomResourceDefinition(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceCustomResourceDefinitionWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified CustomResourceDefinition\n * @param name name of the CustomResourceDefinition\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceCustomResourceDefinitionStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceCustomResourceDefinitionStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceCustomResourceDefinitionStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified CustomResourceDefinition\n * @param name name of the CustomResourceDefinition\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceCustomResourceDefinitionStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceCustomResourceDefinitionStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { ApiregistrationApiRequestFactory, ApiregistrationApiResponseProcessor } from \"../apis/ApiregistrationApi.js\";\nexport class ObservableApiregistrationApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new ApiregistrationApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new ApiregistrationApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { ApiregistrationV1ApiRequestFactory, ApiregistrationV1ApiResponseProcessor } from \"../apis/ApiregistrationV1Api.js\";\nexport class ObservableApiregistrationV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new ApiregistrationV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new ApiregistrationV1ApiResponseProcessor();\n }\n /**\n * create an APIService\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createAPIServiceWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createAPIService(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createAPIServiceWithHttpInfo(rsp)));\n }));\n }\n /**\n * create an APIService\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createAPIService(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createAPIServiceWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete an APIService\n * @param name name of the APIService\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteAPIServiceWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteAPIService(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteAPIServiceWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete an APIService\n * @param name name of the APIService\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteAPIService(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteAPIServiceWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of APIService\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionAPIServiceWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionAPIService(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionAPIServiceWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of APIService\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionAPIService(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionAPIServiceWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind APIService\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listAPIServiceWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listAPIService(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listAPIServiceWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind APIService\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listAPIService(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listAPIServiceWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified APIService\n * @param name name of the APIService\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchAPIServiceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchAPIService(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchAPIServiceWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified APIService\n * @param name name of the APIService\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchAPIService(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchAPIServiceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified APIService\n * @param name name of the APIService\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchAPIServiceStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchAPIServiceStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchAPIServiceStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified APIService\n * @param name name of the APIService\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchAPIServiceStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchAPIServiceStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified APIService\n * @param name name of the APIService\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readAPIServiceWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readAPIService(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readAPIServiceWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified APIService\n * @param name name of the APIService\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readAPIService(name, pretty, _options) {\n return this.readAPIServiceWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified APIService\n * @param name name of the APIService\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readAPIServiceStatusWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readAPIServiceStatus(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readAPIServiceStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified APIService\n * @param name name of the APIService\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readAPIServiceStatus(name, pretty, _options) {\n return this.readAPIServiceStatusWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified APIService\n * @param name name of the APIService\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceAPIServiceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceAPIService(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceAPIServiceWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified APIService\n * @param name name of the APIService\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceAPIService(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceAPIServiceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified APIService\n * @param name name of the APIService\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceAPIServiceStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceAPIServiceStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceAPIServiceStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified APIService\n * @param name name of the APIService\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceAPIServiceStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceAPIServiceStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { ApisApiRequestFactory, ApisApiResponseProcessor } from \"../apis/ApisApi.js\";\nexport class ObservableApisApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new ApisApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new ApisApiResponseProcessor();\n }\n /**\n * get available API versions\n */\n getAPIVersionsWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIVersions(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIVersionsWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available API versions\n */\n getAPIVersions(_options) {\n return this.getAPIVersionsWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { AppsApiRequestFactory, AppsApiResponseProcessor } from \"../apis/AppsApi.js\";\nexport class ObservableAppsApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new AppsApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new AppsApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { AppsV1ApiRequestFactory, AppsV1ApiResponseProcessor } from \"../apis/AppsV1Api.js\";\nexport class ObservableAppsV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new AppsV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new AppsV1ApiResponseProcessor();\n }\n /**\n * create a ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedControllerRevisionWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedControllerRevision(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedControllerRevisionWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedControllerRevision(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedControllerRevisionWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedDaemonSetWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedDaemonSet(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedDaemonSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedDaemonSet(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedDaemonSetWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedDeploymentWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedDeployment(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedDeploymentWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedDeployment(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedDeploymentWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedReplicaSetWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedReplicaSet(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedReplicaSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedReplicaSet(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedReplicaSetWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedStatefulSetWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedStatefulSet(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedStatefulSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedStatefulSet(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedStatefulSetWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedControllerRevisionWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedControllerRevision(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedControllerRevisionWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedControllerRevision(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedControllerRevisionWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedDaemonSetWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedDaemonSet(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedDaemonSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedDaemonSet(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedDaemonSetWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedDeploymentWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedDeployment(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedDeploymentWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedDeployment(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedDeploymentWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedReplicaSetWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedReplicaSet(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedReplicaSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedReplicaSet(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedReplicaSetWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedStatefulSetWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedStatefulSet(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedStatefulSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedStatefulSet(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedStatefulSetWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ControllerRevision\n * @param name name of the ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedControllerRevisionWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedControllerRevision(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedControllerRevisionWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ControllerRevision\n * @param name name of the ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedControllerRevision(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedControllerRevisionWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedDaemonSetWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedDaemonSet(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedDaemonSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedDaemonSet(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedDaemonSetWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedDeploymentWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedDeployment(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedDeploymentWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedDeployment(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedDeploymentWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedReplicaSetWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedReplicaSet(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedReplicaSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedReplicaSet(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedReplicaSetWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedStatefulSetWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedStatefulSet(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedStatefulSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedStatefulSet(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedStatefulSetWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ControllerRevision\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listControllerRevisionForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listControllerRevisionForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listControllerRevisionForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ControllerRevision\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listControllerRevisionForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listControllerRevisionForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind DaemonSet\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listDaemonSetForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listDaemonSetForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listDaemonSetForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind DaemonSet\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listDaemonSetForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listDaemonSetForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Deployment\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listDeploymentForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listDeploymentForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listDeploymentForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Deployment\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listDeploymentForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listDeploymentForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedControllerRevisionWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedControllerRevision(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedControllerRevisionWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedControllerRevision(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedControllerRevisionWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedDaemonSetWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedDaemonSet(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedDaemonSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedDaemonSet(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedDaemonSetWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedDeploymentWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedDeployment(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedDeploymentWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedDeployment(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedDeploymentWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedReplicaSetWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedReplicaSet(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedReplicaSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedReplicaSet(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedReplicaSetWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedStatefulSetWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedStatefulSet(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedStatefulSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedStatefulSet(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedStatefulSetWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ReplicaSet\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listReplicaSetForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listReplicaSetForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listReplicaSetForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ReplicaSet\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listReplicaSetForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listReplicaSetForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind StatefulSet\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listStatefulSetForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listStatefulSetForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listStatefulSetForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind StatefulSet\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listStatefulSetForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listStatefulSetForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ControllerRevision\n * @param name name of the ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedControllerRevisionWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedControllerRevision(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedControllerRevisionWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ControllerRevision\n * @param name name of the ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedControllerRevision(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedControllerRevisionWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedDaemonSetWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedDaemonSet(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedDaemonSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedDaemonSet(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedDaemonSetWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedDaemonSetStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedDaemonSetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedDaemonSetStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedDaemonSetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedDaemonSetStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedDeploymentWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedDeployment(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedDeploymentWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedDeployment(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedDeploymentWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update scale of the specified Deployment\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedDeploymentScaleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedDeploymentScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedDeploymentScaleWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update scale of the specified Deployment\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedDeploymentScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedDeploymentScaleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedDeploymentStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedDeploymentStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedDeploymentStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedDeploymentStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedDeploymentStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedReplicaSetWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedReplicaSet(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedReplicaSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedReplicaSet(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedReplicaSetWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update scale of the specified ReplicaSet\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedReplicaSetScaleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedReplicaSetScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedReplicaSetScaleWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update scale of the specified ReplicaSet\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedReplicaSetScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedReplicaSetScaleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedReplicaSetStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedReplicaSetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedReplicaSetStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedReplicaSetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedReplicaSetStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedStatefulSetWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedStatefulSet(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedStatefulSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedStatefulSet(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedStatefulSetWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update scale of the specified StatefulSet\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedStatefulSetScaleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedStatefulSetScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedStatefulSetScaleWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update scale of the specified StatefulSet\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedStatefulSetScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedStatefulSetScaleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedStatefulSetStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedStatefulSetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedStatefulSetStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedStatefulSetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedStatefulSetStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ControllerRevision\n * @param name name of the ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedControllerRevisionWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedControllerRevision(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedControllerRevisionWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ControllerRevision\n * @param name name of the ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedControllerRevision(name, namespace, pretty, _options) {\n return this.readNamespacedControllerRevisionWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedDaemonSetWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedDaemonSet(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedDaemonSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedDaemonSet(name, namespace, pretty, _options) {\n return this.readNamespacedDaemonSetWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedDaemonSetStatusWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedDaemonSetStatus(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedDaemonSetStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedDaemonSetStatus(name, namespace, pretty, _options) {\n return this.readNamespacedDaemonSetStatusWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedDeploymentWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedDeployment(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedDeploymentWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedDeployment(name, namespace, pretty, _options) {\n return this.readNamespacedDeploymentWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read scale of the specified Deployment\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedDeploymentScaleWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedDeploymentScale(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedDeploymentScaleWithHttpInfo(rsp)));\n }));\n }\n /**\n * read scale of the specified Deployment\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedDeploymentScale(name, namespace, pretty, _options) {\n return this.readNamespacedDeploymentScaleWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedDeploymentStatusWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedDeploymentStatus(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedDeploymentStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedDeploymentStatus(name, namespace, pretty, _options) {\n return this.readNamespacedDeploymentStatusWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedReplicaSetWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedReplicaSet(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedReplicaSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedReplicaSet(name, namespace, pretty, _options) {\n return this.readNamespacedReplicaSetWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read scale of the specified ReplicaSet\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedReplicaSetScaleWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedReplicaSetScale(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedReplicaSetScaleWithHttpInfo(rsp)));\n }));\n }\n /**\n * read scale of the specified ReplicaSet\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedReplicaSetScale(name, namespace, pretty, _options) {\n return this.readNamespacedReplicaSetScaleWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedReplicaSetStatusWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedReplicaSetStatus(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedReplicaSetStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedReplicaSetStatus(name, namespace, pretty, _options) {\n return this.readNamespacedReplicaSetStatusWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedStatefulSetWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedStatefulSet(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedStatefulSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedStatefulSet(name, namespace, pretty, _options) {\n return this.readNamespacedStatefulSetWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read scale of the specified StatefulSet\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedStatefulSetScaleWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedStatefulSetScale(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedStatefulSetScaleWithHttpInfo(rsp)));\n }));\n }\n /**\n * read scale of the specified StatefulSet\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedStatefulSetScale(name, namespace, pretty, _options) {\n return this.readNamespacedStatefulSetScaleWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedStatefulSetStatusWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedStatefulSetStatus(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedStatefulSetStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedStatefulSetStatus(name, namespace, pretty, _options) {\n return this.readNamespacedStatefulSetStatusWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ControllerRevision\n * @param name name of the ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedControllerRevisionWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedControllerRevision(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedControllerRevisionWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ControllerRevision\n * @param name name of the ControllerRevision\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedControllerRevision(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedControllerRevisionWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedDaemonSetWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedDaemonSet(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedDaemonSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedDaemonSet(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedDaemonSetWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedDaemonSetStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedDaemonSetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedDaemonSetStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified DaemonSet\n * @param name name of the DaemonSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedDaemonSetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedDaemonSetStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedDeploymentWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedDeployment(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedDeploymentWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedDeployment(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedDeploymentWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace scale of the specified Deployment\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedDeploymentScaleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedDeploymentScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedDeploymentScaleWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace scale of the specified Deployment\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedDeploymentScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedDeploymentScaleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedDeploymentStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedDeploymentStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedDeploymentStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified Deployment\n * @param name name of the Deployment\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedDeploymentStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedDeploymentStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedReplicaSetWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedReplicaSet(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedReplicaSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedReplicaSet(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedReplicaSetWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace scale of the specified ReplicaSet\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedReplicaSetScaleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedReplicaSetScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedReplicaSetScaleWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace scale of the specified ReplicaSet\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedReplicaSetScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedReplicaSetScaleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedReplicaSetStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedReplicaSetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedReplicaSetStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified ReplicaSet\n * @param name name of the ReplicaSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedReplicaSetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedReplicaSetStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedStatefulSetWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedStatefulSet(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedStatefulSetWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedStatefulSet(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedStatefulSetWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace scale of the specified StatefulSet\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedStatefulSetScaleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedStatefulSetScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedStatefulSetScaleWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace scale of the specified StatefulSet\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedStatefulSetScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedStatefulSetScaleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedStatefulSetStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedStatefulSetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedStatefulSetStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified StatefulSet\n * @param name name of the StatefulSet\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedStatefulSetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedStatefulSetStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { AuthenticationApiRequestFactory, AuthenticationApiResponseProcessor } from \"../apis/AuthenticationApi.js\";\nexport class ObservableAuthenticationApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new AuthenticationApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new AuthenticationApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { AuthenticationV1ApiRequestFactory, AuthenticationV1ApiResponseProcessor } from \"../apis/AuthenticationV1Api.js\";\nexport class ObservableAuthenticationV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new AuthenticationV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new AuthenticationV1ApiResponseProcessor();\n }\n /**\n * create a SelfSubjectReview\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createSelfSubjectReviewWithHttpInfo(body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createSelfSubjectReview(body, dryRun, fieldManager, fieldValidation, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createSelfSubjectReviewWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a SelfSubjectReview\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createSelfSubjectReview(body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n return this.createSelfSubjectReviewWithHttpInfo(body, dryRun, fieldManager, fieldValidation, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a TokenReview\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createTokenReviewWithHttpInfo(body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createTokenReview(body, dryRun, fieldManager, fieldValidation, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createTokenReviewWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a TokenReview\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createTokenReview(body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n return this.createTokenReviewWithHttpInfo(body, dryRun, fieldManager, fieldValidation, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { AuthorizationApiRequestFactory, AuthorizationApiResponseProcessor } from \"../apis/AuthorizationApi.js\";\nexport class ObservableAuthorizationApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new AuthorizationApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new AuthorizationApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { AuthorizationV1ApiRequestFactory, AuthorizationV1ApiResponseProcessor } from \"../apis/AuthorizationV1Api.js\";\nexport class ObservableAuthorizationV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new AuthorizationV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new AuthorizationV1ApiResponseProcessor();\n }\n /**\n * create a LocalSubjectAccessReview\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createNamespacedLocalSubjectAccessReviewWithHttpInfo(namespace, body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedLocalSubjectAccessReview(namespace, body, dryRun, fieldManager, fieldValidation, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedLocalSubjectAccessReviewWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a LocalSubjectAccessReview\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createNamespacedLocalSubjectAccessReview(namespace, body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n return this.createNamespacedLocalSubjectAccessReviewWithHttpInfo(namespace, body, dryRun, fieldManager, fieldValidation, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a SelfSubjectAccessReview\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createSelfSubjectAccessReviewWithHttpInfo(body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createSelfSubjectAccessReview(body, dryRun, fieldManager, fieldValidation, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createSelfSubjectAccessReviewWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a SelfSubjectAccessReview\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createSelfSubjectAccessReview(body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n return this.createSelfSubjectAccessReviewWithHttpInfo(body, dryRun, fieldManager, fieldValidation, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a SelfSubjectRulesReview\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createSelfSubjectRulesReviewWithHttpInfo(body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createSelfSubjectRulesReview(body, dryRun, fieldManager, fieldValidation, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createSelfSubjectRulesReviewWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a SelfSubjectRulesReview\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createSelfSubjectRulesReview(body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n return this.createSelfSubjectRulesReviewWithHttpInfo(body, dryRun, fieldManager, fieldValidation, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a SubjectAccessReview\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createSubjectAccessReviewWithHttpInfo(body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createSubjectAccessReview(body, dryRun, fieldManager, fieldValidation, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createSubjectAccessReviewWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a SubjectAccessReview\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createSubjectAccessReview(body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n return this.createSubjectAccessReviewWithHttpInfo(body, dryRun, fieldManager, fieldValidation, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { AutoscalingApiRequestFactory, AutoscalingApiResponseProcessor } from \"../apis/AutoscalingApi.js\";\nexport class ObservableAutoscalingApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new AutoscalingApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new AutoscalingApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { AutoscalingV1ApiRequestFactory, AutoscalingV1ApiResponseProcessor } from \"../apis/AutoscalingV1Api.js\";\nexport class ObservableAutoscalingV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new AutoscalingV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new AutoscalingV1ApiResponseProcessor();\n }\n /**\n * create a HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedHorizontalPodAutoscalerWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedHorizontalPodAutoscaler(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedHorizontalPodAutoscalerWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedHorizontalPodAutoscaler(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedHorizontalPodAutoscalerWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedHorizontalPodAutoscalerWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedHorizontalPodAutoscaler(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedHorizontalPodAutoscalerWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedHorizontalPodAutoscaler(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedHorizontalPodAutoscalerWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedHorizontalPodAutoscalerWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedHorizontalPodAutoscaler(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedHorizontalPodAutoscalerWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedHorizontalPodAutoscaler(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedHorizontalPodAutoscalerWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind HorizontalPodAutoscaler\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listHorizontalPodAutoscalerForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listHorizontalPodAutoscalerForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listHorizontalPodAutoscalerForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind HorizontalPodAutoscaler\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listHorizontalPodAutoscalerForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listHorizontalPodAutoscalerForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedHorizontalPodAutoscalerWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedHorizontalPodAutoscaler(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedHorizontalPodAutoscalerWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedHorizontalPodAutoscaler(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedHorizontalPodAutoscalerWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedHorizontalPodAutoscalerWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedHorizontalPodAutoscaler(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedHorizontalPodAutoscalerWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedHorizontalPodAutoscaler(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedHorizontalPodAutoscalerWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedHorizontalPodAutoscalerStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedHorizontalPodAutoscalerStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedHorizontalPodAutoscalerWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedHorizontalPodAutoscaler(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedHorizontalPodAutoscalerWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedHorizontalPodAutoscaler(name, namespace, pretty, _options) {\n return this.readNamespacedHorizontalPodAutoscalerWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedHorizontalPodAutoscalerStatus(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedHorizontalPodAutoscalerStatus(name, namespace, pretty, _options) {\n return this.readNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedHorizontalPodAutoscalerWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedHorizontalPodAutoscaler(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedHorizontalPodAutoscalerWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedHorizontalPodAutoscaler(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedHorizontalPodAutoscalerWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedHorizontalPodAutoscalerStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedHorizontalPodAutoscalerStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { AutoscalingV2ApiRequestFactory, AutoscalingV2ApiResponseProcessor } from \"../apis/AutoscalingV2Api.js\";\nexport class ObservableAutoscalingV2Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new AutoscalingV2ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new AutoscalingV2ApiResponseProcessor();\n }\n /**\n * create a HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedHorizontalPodAutoscalerWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedHorizontalPodAutoscaler(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedHorizontalPodAutoscalerWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedHorizontalPodAutoscaler(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedHorizontalPodAutoscalerWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedHorizontalPodAutoscalerWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedHorizontalPodAutoscaler(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedHorizontalPodAutoscalerWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedHorizontalPodAutoscaler(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedHorizontalPodAutoscalerWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedHorizontalPodAutoscalerWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedHorizontalPodAutoscaler(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedHorizontalPodAutoscalerWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedHorizontalPodAutoscaler(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedHorizontalPodAutoscalerWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind HorizontalPodAutoscaler\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listHorizontalPodAutoscalerForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listHorizontalPodAutoscalerForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listHorizontalPodAutoscalerForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind HorizontalPodAutoscaler\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listHorizontalPodAutoscalerForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listHorizontalPodAutoscalerForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedHorizontalPodAutoscalerWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedHorizontalPodAutoscaler(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedHorizontalPodAutoscalerWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedHorizontalPodAutoscaler(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedHorizontalPodAutoscalerWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedHorizontalPodAutoscalerWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedHorizontalPodAutoscaler(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedHorizontalPodAutoscalerWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedHorizontalPodAutoscaler(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedHorizontalPodAutoscalerWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedHorizontalPodAutoscalerStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedHorizontalPodAutoscalerStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedHorizontalPodAutoscalerWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedHorizontalPodAutoscaler(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedHorizontalPodAutoscalerWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedHorizontalPodAutoscaler(name, namespace, pretty, _options) {\n return this.readNamespacedHorizontalPodAutoscalerWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedHorizontalPodAutoscalerStatus(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedHorizontalPodAutoscalerStatus(name, namespace, pretty, _options) {\n return this.readNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedHorizontalPodAutoscalerWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedHorizontalPodAutoscaler(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedHorizontalPodAutoscalerWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedHorizontalPodAutoscaler(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedHorizontalPodAutoscalerWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedHorizontalPodAutoscalerStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified HorizontalPodAutoscaler\n * @param name name of the HorizontalPodAutoscaler\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedHorizontalPodAutoscalerStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { BatchApiRequestFactory, BatchApiResponseProcessor } from \"../apis/BatchApi.js\";\nexport class ObservableBatchApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new BatchApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new BatchApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { BatchV1ApiRequestFactory, BatchV1ApiResponseProcessor } from \"../apis/BatchV1Api.js\";\nexport class ObservableBatchV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new BatchV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new BatchV1ApiResponseProcessor();\n }\n /**\n * create a CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedCronJobWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedCronJob(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedCronJobWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedCronJob(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedCronJobWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedJobWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedJob(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedJobWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedJob(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedJobWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedCronJobWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedCronJob(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedCronJobWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedCronJob(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedCronJobWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedJobWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedJob(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedJobWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedJob(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedJobWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a CronJob\n * @param name name of the CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedCronJobWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedCronJob(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedCronJobWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a CronJob\n * @param name name of the CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedCronJob(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedCronJobWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a Job\n * @param name name of the Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedJobWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedJob(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedJobWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a Job\n * @param name name of the Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedJob(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedJobWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind CronJob\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listCronJobForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listCronJobForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listCronJobForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind CronJob\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listCronJobForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listCronJobForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Job\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listJobForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listJobForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listJobForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Job\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listJobForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listJobForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedCronJobWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedCronJob(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedCronJobWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedCronJob(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedCronJobWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedJobWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedJob(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedJobWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedJob(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedJobWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified CronJob\n * @param name name of the CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedCronJobWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedCronJob(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedCronJobWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified CronJob\n * @param name name of the CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedCronJob(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedCronJobWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified CronJob\n * @param name name of the CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedCronJobStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedCronJobStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedCronJobStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified CronJob\n * @param name name of the CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedCronJobStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedCronJobStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified Job\n * @param name name of the Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedJobWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedJob(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedJobWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified Job\n * @param name name of the Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedJob(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedJobWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified Job\n * @param name name of the Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedJobStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedJobStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedJobStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified Job\n * @param name name of the Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedJobStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedJobStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified CronJob\n * @param name name of the CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedCronJobWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedCronJob(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedCronJobWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified CronJob\n * @param name name of the CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedCronJob(name, namespace, pretty, _options) {\n return this.readNamespacedCronJobWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified CronJob\n * @param name name of the CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedCronJobStatusWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedCronJobStatus(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedCronJobStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified CronJob\n * @param name name of the CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedCronJobStatus(name, namespace, pretty, _options) {\n return this.readNamespacedCronJobStatusWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified Job\n * @param name name of the Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedJobWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedJob(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedJobWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified Job\n * @param name name of the Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedJob(name, namespace, pretty, _options) {\n return this.readNamespacedJobWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified Job\n * @param name name of the Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedJobStatusWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedJobStatus(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedJobStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified Job\n * @param name name of the Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedJobStatus(name, namespace, pretty, _options) {\n return this.readNamespacedJobStatusWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified CronJob\n * @param name name of the CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedCronJobWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedCronJob(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedCronJobWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified CronJob\n * @param name name of the CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedCronJob(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedCronJobWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified CronJob\n * @param name name of the CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedCronJobStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedCronJobStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedCronJobStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified CronJob\n * @param name name of the CronJob\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedCronJobStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedCronJobStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified Job\n * @param name name of the Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedJobWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedJob(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedJobWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified Job\n * @param name name of the Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedJob(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedJobWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified Job\n * @param name name of the Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedJobStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedJobStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedJobStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified Job\n * @param name name of the Job\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedJobStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedJobStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { CertificatesApiRequestFactory, CertificatesApiResponseProcessor } from \"../apis/CertificatesApi.js\";\nexport class ObservableCertificatesApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new CertificatesApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new CertificatesApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { CertificatesV1ApiRequestFactory, CertificatesV1ApiResponseProcessor } from \"../apis/CertificatesV1Api.js\";\nexport class ObservableCertificatesV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new CertificatesV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new CertificatesV1ApiResponseProcessor();\n }\n /**\n * create a CertificateSigningRequest\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createCertificateSigningRequestWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createCertificateSigningRequest(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createCertificateSigningRequestWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a CertificateSigningRequest\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createCertificateSigningRequest(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createCertificateSigningRequestWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteCertificateSigningRequestWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCertificateSigningRequest(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCertificateSigningRequestWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteCertificateSigningRequest(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteCertificateSigningRequestWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of CertificateSigningRequest\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionCertificateSigningRequestWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionCertificateSigningRequest(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionCertificateSigningRequestWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of CertificateSigningRequest\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionCertificateSigningRequest(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionCertificateSigningRequestWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind CertificateSigningRequest\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listCertificateSigningRequestWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listCertificateSigningRequest(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listCertificateSigningRequestWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind CertificateSigningRequest\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listCertificateSigningRequest(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listCertificateSigningRequestWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchCertificateSigningRequestWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchCertificateSigningRequest(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchCertificateSigningRequestWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchCertificateSigningRequest(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchCertificateSigningRequestWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update approval of the specified CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchCertificateSigningRequestApprovalWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchCertificateSigningRequestApproval(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchCertificateSigningRequestApprovalWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update approval of the specified CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchCertificateSigningRequestApproval(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchCertificateSigningRequestApprovalWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchCertificateSigningRequestStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchCertificateSigningRequestStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchCertificateSigningRequestStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchCertificateSigningRequestStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchCertificateSigningRequestStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readCertificateSigningRequestWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readCertificateSigningRequest(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readCertificateSigningRequestWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readCertificateSigningRequest(name, pretty, _options) {\n return this.readCertificateSigningRequestWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read approval of the specified CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readCertificateSigningRequestApprovalWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readCertificateSigningRequestApproval(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readCertificateSigningRequestApprovalWithHttpInfo(rsp)));\n }));\n }\n /**\n * read approval of the specified CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readCertificateSigningRequestApproval(name, pretty, _options) {\n return this.readCertificateSigningRequestApprovalWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readCertificateSigningRequestStatusWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readCertificateSigningRequestStatus(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readCertificateSigningRequestStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readCertificateSigningRequestStatus(name, pretty, _options) {\n return this.readCertificateSigningRequestStatusWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceCertificateSigningRequestWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceCertificateSigningRequest(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceCertificateSigningRequestWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceCertificateSigningRequest(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceCertificateSigningRequestWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace approval of the specified CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceCertificateSigningRequestApprovalWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceCertificateSigningRequestApproval(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceCertificateSigningRequestApprovalWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace approval of the specified CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceCertificateSigningRequestApproval(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceCertificateSigningRequestApprovalWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceCertificateSigningRequestStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceCertificateSigningRequestStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceCertificateSigningRequestStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified CertificateSigningRequest\n * @param name name of the CertificateSigningRequest\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceCertificateSigningRequestStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceCertificateSigningRequestStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { CertificatesV1alpha1ApiRequestFactory, CertificatesV1alpha1ApiResponseProcessor } from \"../apis/CertificatesV1alpha1Api.js\";\nexport class ObservableCertificatesV1alpha1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new CertificatesV1alpha1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new CertificatesV1alpha1ApiResponseProcessor();\n }\n /**\n * create a ClusterTrustBundle\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createClusterTrustBundleWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createClusterTrustBundle(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createClusterTrustBundleWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ClusterTrustBundle\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createClusterTrustBundle(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createClusterTrustBundleWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ClusterTrustBundle\n * @param name name of the ClusterTrustBundle\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteClusterTrustBundleWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteClusterTrustBundle(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteClusterTrustBundleWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ClusterTrustBundle\n * @param name name of the ClusterTrustBundle\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteClusterTrustBundle(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteClusterTrustBundleWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ClusterTrustBundle\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionClusterTrustBundleWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionClusterTrustBundle(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionClusterTrustBundleWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ClusterTrustBundle\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionClusterTrustBundle(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionClusterTrustBundleWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ClusterTrustBundle\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listClusterTrustBundleWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listClusterTrustBundle(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listClusterTrustBundleWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ClusterTrustBundle\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listClusterTrustBundle(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listClusterTrustBundleWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ClusterTrustBundle\n * @param name name of the ClusterTrustBundle\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchClusterTrustBundleWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchClusterTrustBundle(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchClusterTrustBundleWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ClusterTrustBundle\n * @param name name of the ClusterTrustBundle\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchClusterTrustBundle(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchClusterTrustBundleWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ClusterTrustBundle\n * @param name name of the ClusterTrustBundle\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readClusterTrustBundleWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readClusterTrustBundle(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readClusterTrustBundleWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ClusterTrustBundle\n * @param name name of the ClusterTrustBundle\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readClusterTrustBundle(name, pretty, _options) {\n return this.readClusterTrustBundleWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ClusterTrustBundle\n * @param name name of the ClusterTrustBundle\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceClusterTrustBundleWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceClusterTrustBundle(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceClusterTrustBundleWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ClusterTrustBundle\n * @param name name of the ClusterTrustBundle\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceClusterTrustBundle(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceClusterTrustBundleWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { CertificatesV1beta1ApiRequestFactory, CertificatesV1beta1ApiResponseProcessor } from \"../apis/CertificatesV1beta1Api.js\";\nexport class ObservableCertificatesV1beta1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new CertificatesV1beta1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new CertificatesV1beta1ApiResponseProcessor();\n }\n /**\n * create a ClusterTrustBundle\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createClusterTrustBundleWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createClusterTrustBundle(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createClusterTrustBundleWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ClusterTrustBundle\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createClusterTrustBundle(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createClusterTrustBundleWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ClusterTrustBundle\n * @param name name of the ClusterTrustBundle\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteClusterTrustBundleWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteClusterTrustBundle(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteClusterTrustBundleWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ClusterTrustBundle\n * @param name name of the ClusterTrustBundle\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteClusterTrustBundle(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteClusterTrustBundleWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ClusterTrustBundle\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionClusterTrustBundleWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionClusterTrustBundle(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionClusterTrustBundleWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ClusterTrustBundle\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionClusterTrustBundle(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionClusterTrustBundleWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ClusterTrustBundle\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listClusterTrustBundleWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listClusterTrustBundle(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listClusterTrustBundleWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ClusterTrustBundle\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listClusterTrustBundle(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listClusterTrustBundleWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ClusterTrustBundle\n * @param name name of the ClusterTrustBundle\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchClusterTrustBundleWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchClusterTrustBundle(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchClusterTrustBundleWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ClusterTrustBundle\n * @param name name of the ClusterTrustBundle\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchClusterTrustBundle(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchClusterTrustBundleWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ClusterTrustBundle\n * @param name name of the ClusterTrustBundle\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readClusterTrustBundleWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readClusterTrustBundle(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readClusterTrustBundleWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ClusterTrustBundle\n * @param name name of the ClusterTrustBundle\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readClusterTrustBundle(name, pretty, _options) {\n return this.readClusterTrustBundleWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ClusterTrustBundle\n * @param name name of the ClusterTrustBundle\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceClusterTrustBundleWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceClusterTrustBundle(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceClusterTrustBundleWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ClusterTrustBundle\n * @param name name of the ClusterTrustBundle\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceClusterTrustBundle(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceClusterTrustBundleWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { CoordinationApiRequestFactory, CoordinationApiResponseProcessor } from \"../apis/CoordinationApi.js\";\nexport class ObservableCoordinationApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new CoordinationApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new CoordinationApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { CoordinationV1ApiRequestFactory, CoordinationV1ApiResponseProcessor } from \"../apis/CoordinationV1Api.js\";\nexport class ObservableCoordinationV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new CoordinationV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new CoordinationV1ApiResponseProcessor();\n }\n /**\n * create a Lease\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedLeaseWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedLease(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedLeaseWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a Lease\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedLease(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedLeaseWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of Lease\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedLeaseWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedLease(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedLeaseWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of Lease\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedLease(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedLeaseWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a Lease\n * @param name name of the Lease\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedLeaseWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedLease(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedLeaseWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a Lease\n * @param name name of the Lease\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedLease(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedLeaseWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Lease\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listLeaseForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listLeaseForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listLeaseForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Lease\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listLeaseForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listLeaseForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Lease\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedLeaseWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedLease(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedLeaseWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Lease\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedLease(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedLeaseWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified Lease\n * @param name name of the Lease\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedLeaseWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedLease(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedLeaseWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified Lease\n * @param name name of the Lease\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedLease(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedLeaseWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified Lease\n * @param name name of the Lease\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedLeaseWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedLease(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedLeaseWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified Lease\n * @param name name of the Lease\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedLease(name, namespace, pretty, _options) {\n return this.readNamespacedLeaseWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified Lease\n * @param name name of the Lease\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedLeaseWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedLease(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedLeaseWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified Lease\n * @param name name of the Lease\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedLease(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedLeaseWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { CoordinationV1alpha2ApiRequestFactory, CoordinationV1alpha2ApiResponseProcessor } from \"../apis/CoordinationV1alpha2Api.js\";\nexport class ObservableCoordinationV1alpha2Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new CoordinationV1alpha2ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new CoordinationV1alpha2ApiResponseProcessor();\n }\n /**\n * create a LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedLeaseCandidateWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedLeaseCandidate(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedLeaseCandidateWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedLeaseCandidate(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedLeaseCandidateWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedLeaseCandidateWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedLeaseCandidate(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedLeaseCandidateWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedLeaseCandidate(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedLeaseCandidateWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a LeaseCandidate\n * @param name name of the LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedLeaseCandidateWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedLeaseCandidate(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedLeaseCandidateWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a LeaseCandidate\n * @param name name of the LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedLeaseCandidate(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedLeaseCandidateWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind LeaseCandidate\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listLeaseCandidateForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listLeaseCandidateForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listLeaseCandidateForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind LeaseCandidate\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listLeaseCandidateForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listLeaseCandidateForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedLeaseCandidateWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedLeaseCandidate(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedLeaseCandidateWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedLeaseCandidate(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedLeaseCandidateWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified LeaseCandidate\n * @param name name of the LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedLeaseCandidateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedLeaseCandidate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedLeaseCandidateWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified LeaseCandidate\n * @param name name of the LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedLeaseCandidate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedLeaseCandidateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified LeaseCandidate\n * @param name name of the LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedLeaseCandidateWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedLeaseCandidate(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedLeaseCandidateWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified LeaseCandidate\n * @param name name of the LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedLeaseCandidate(name, namespace, pretty, _options) {\n return this.readNamespacedLeaseCandidateWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified LeaseCandidate\n * @param name name of the LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedLeaseCandidateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedLeaseCandidate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedLeaseCandidateWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified LeaseCandidate\n * @param name name of the LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedLeaseCandidate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedLeaseCandidateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { CoordinationV1beta1ApiRequestFactory, CoordinationV1beta1ApiResponseProcessor } from \"../apis/CoordinationV1beta1Api.js\";\nexport class ObservableCoordinationV1beta1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new CoordinationV1beta1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new CoordinationV1beta1ApiResponseProcessor();\n }\n /**\n * create a LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedLeaseCandidateWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedLeaseCandidate(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedLeaseCandidateWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedLeaseCandidate(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedLeaseCandidateWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedLeaseCandidateWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedLeaseCandidate(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedLeaseCandidateWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedLeaseCandidate(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedLeaseCandidateWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a LeaseCandidate\n * @param name name of the LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedLeaseCandidateWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedLeaseCandidate(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedLeaseCandidateWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a LeaseCandidate\n * @param name name of the LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedLeaseCandidate(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedLeaseCandidateWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind LeaseCandidate\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listLeaseCandidateForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listLeaseCandidateForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listLeaseCandidateForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind LeaseCandidate\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listLeaseCandidateForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listLeaseCandidateForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedLeaseCandidateWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedLeaseCandidate(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedLeaseCandidateWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedLeaseCandidate(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedLeaseCandidateWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified LeaseCandidate\n * @param name name of the LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedLeaseCandidateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedLeaseCandidate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedLeaseCandidateWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified LeaseCandidate\n * @param name name of the LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedLeaseCandidate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedLeaseCandidateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified LeaseCandidate\n * @param name name of the LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedLeaseCandidateWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedLeaseCandidate(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedLeaseCandidateWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified LeaseCandidate\n * @param name name of the LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedLeaseCandidate(name, namespace, pretty, _options) {\n return this.readNamespacedLeaseCandidateWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified LeaseCandidate\n * @param name name of the LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedLeaseCandidateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedLeaseCandidate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedLeaseCandidateWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified LeaseCandidate\n * @param name name of the LeaseCandidate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedLeaseCandidate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedLeaseCandidateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { CoreApiRequestFactory, CoreApiResponseProcessor } from \"../apis/CoreApi.js\";\nexport class ObservableCoreApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new CoreApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new CoreApiResponseProcessor();\n }\n /**\n * get available API versions\n */\n getAPIVersionsWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIVersions(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIVersionsWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available API versions\n */\n getAPIVersions(_options) {\n return this.getAPIVersionsWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { CoreV1ApiRequestFactory, CoreV1ApiResponseProcessor } from \"../apis/CoreV1Api.js\";\nexport class ObservableCoreV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new CoreV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new CoreV1ApiResponseProcessor();\n }\n /**\n * connect DELETE requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the URL path to use for the current proxy request to pod.\n */\n connectDeleteNamespacedPodProxyWithHttpInfo(name, namespace, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectDeleteNamespacedPodProxy(name, namespace, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectDeleteNamespacedPodProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect DELETE requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the URL path to use for the current proxy request to pod.\n */\n connectDeleteNamespacedPodProxy(name, namespace, path, _options) {\n return this.connectDeleteNamespacedPodProxyWithHttpInfo(name, namespace, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect DELETE requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to pod.\n */\n connectDeleteNamespacedPodProxyWithPathWithHttpInfo(name, namespace, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectDeleteNamespacedPodProxyWithPath(name, namespace, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectDeleteNamespacedPodProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect DELETE requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to pod.\n */\n connectDeleteNamespacedPodProxyWithPath(name, namespace, path, path2, _options) {\n return this.connectDeleteNamespacedPodProxyWithPathWithHttpInfo(name, namespace, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect DELETE requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectDeleteNamespacedServiceProxyWithHttpInfo(name, namespace, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectDeleteNamespacedServiceProxy(name, namespace, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectDeleteNamespacedServiceProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect DELETE requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectDeleteNamespacedServiceProxy(name, namespace, path, _options) {\n return this.connectDeleteNamespacedServiceProxyWithHttpInfo(name, namespace, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect DELETE requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectDeleteNamespacedServiceProxyWithPathWithHttpInfo(name, namespace, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectDeleteNamespacedServiceProxyWithPath(name, namespace, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectDeleteNamespacedServiceProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect DELETE requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectDeleteNamespacedServiceProxyWithPath(name, namespace, path, path2, _options) {\n return this.connectDeleteNamespacedServiceProxyWithPathWithHttpInfo(name, namespace, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect DELETE requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param [path] Path is the URL path to use for the current proxy request to node.\n */\n connectDeleteNodeProxyWithHttpInfo(name, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectDeleteNodeProxy(name, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectDeleteNodeProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect DELETE requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param [path] Path is the URL path to use for the current proxy request to node.\n */\n connectDeleteNodeProxy(name, path, _options) {\n return this.connectDeleteNodeProxyWithHttpInfo(name, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect DELETE requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to node.\n */\n connectDeleteNodeProxyWithPathWithHttpInfo(name, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectDeleteNodeProxyWithPath(name, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectDeleteNodeProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect DELETE requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to node.\n */\n connectDeleteNodeProxyWithPath(name, path, path2, _options) {\n return this.connectDeleteNodeProxyWithPathWithHttpInfo(name, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect GET requests to attach of Pod\n * @param name name of the PodAttachOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [container] The container in which to execute the command. Defaults to only container if there is only one container in the pod.\n * @param [stderr] Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.\n * @param [stdin] Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.\n * @param [stdout] Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.\n * @param [tty] TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.\n */\n connectGetNamespacedPodAttachWithHttpInfo(name, namespace, container, stderr, stdin, stdout, tty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectGetNamespacedPodAttach(name, namespace, container, stderr, stdin, stdout, tty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectGetNamespacedPodAttachWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect GET requests to attach of Pod\n * @param name name of the PodAttachOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [container] The container in which to execute the command. Defaults to only container if there is only one container in the pod.\n * @param [stderr] Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.\n * @param [stdin] Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.\n * @param [stdout] Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.\n * @param [tty] TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.\n */\n connectGetNamespacedPodAttach(name, namespace, container, stderr, stdin, stdout, tty, _options) {\n return this.connectGetNamespacedPodAttachWithHttpInfo(name, namespace, container, stderr, stdin, stdout, tty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect GET requests to exec of Pod\n * @param name name of the PodExecOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [command] Command is the remote command to execute. argv array. Not executed within a shell.\n * @param [container] Container in which to execute the command. Defaults to only container if there is only one container in the pod.\n * @param [stderr] Redirect the standard error stream of the pod for this call.\n * @param [stdin] Redirect the standard input stream of the pod for this call. Defaults to false.\n * @param [stdout] Redirect the standard output stream of the pod for this call.\n * @param [tty] TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.\n */\n connectGetNamespacedPodExecWithHttpInfo(name, namespace, command, container, stderr, stdin, stdout, tty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectGetNamespacedPodExec(name, namespace, command, container, stderr, stdin, stdout, tty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectGetNamespacedPodExecWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect GET requests to exec of Pod\n * @param name name of the PodExecOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [command] Command is the remote command to execute. argv array. Not executed within a shell.\n * @param [container] Container in which to execute the command. Defaults to only container if there is only one container in the pod.\n * @param [stderr] Redirect the standard error stream of the pod for this call.\n * @param [stdin] Redirect the standard input stream of the pod for this call. Defaults to false.\n * @param [stdout] Redirect the standard output stream of the pod for this call.\n * @param [tty] TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.\n */\n connectGetNamespacedPodExec(name, namespace, command, container, stderr, stdin, stdout, tty, _options) {\n return this.connectGetNamespacedPodExecWithHttpInfo(name, namespace, command, container, stderr, stdin, stdout, tty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect GET requests to portforward of Pod\n * @param name name of the PodPortForwardOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [ports] List of ports to forward Required when using WebSockets\n */\n connectGetNamespacedPodPortforwardWithHttpInfo(name, namespace, ports, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectGetNamespacedPodPortforward(name, namespace, ports, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectGetNamespacedPodPortforwardWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect GET requests to portforward of Pod\n * @param name name of the PodPortForwardOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [ports] List of ports to forward Required when using WebSockets\n */\n connectGetNamespacedPodPortforward(name, namespace, ports, _options) {\n return this.connectGetNamespacedPodPortforwardWithHttpInfo(name, namespace, ports, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect GET requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the URL path to use for the current proxy request to pod.\n */\n connectGetNamespacedPodProxyWithHttpInfo(name, namespace, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectGetNamespacedPodProxy(name, namespace, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectGetNamespacedPodProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect GET requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the URL path to use for the current proxy request to pod.\n */\n connectGetNamespacedPodProxy(name, namespace, path, _options) {\n return this.connectGetNamespacedPodProxyWithHttpInfo(name, namespace, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect GET requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to pod.\n */\n connectGetNamespacedPodProxyWithPathWithHttpInfo(name, namespace, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectGetNamespacedPodProxyWithPath(name, namespace, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectGetNamespacedPodProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect GET requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to pod.\n */\n connectGetNamespacedPodProxyWithPath(name, namespace, path, path2, _options) {\n return this.connectGetNamespacedPodProxyWithPathWithHttpInfo(name, namespace, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect GET requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectGetNamespacedServiceProxyWithHttpInfo(name, namespace, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectGetNamespacedServiceProxy(name, namespace, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectGetNamespacedServiceProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect GET requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectGetNamespacedServiceProxy(name, namespace, path, _options) {\n return this.connectGetNamespacedServiceProxyWithHttpInfo(name, namespace, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect GET requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectGetNamespacedServiceProxyWithPathWithHttpInfo(name, namespace, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectGetNamespacedServiceProxyWithPath(name, namespace, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectGetNamespacedServiceProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect GET requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectGetNamespacedServiceProxyWithPath(name, namespace, path, path2, _options) {\n return this.connectGetNamespacedServiceProxyWithPathWithHttpInfo(name, namespace, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect GET requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param [path] Path is the URL path to use for the current proxy request to node.\n */\n connectGetNodeProxyWithHttpInfo(name, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectGetNodeProxy(name, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectGetNodeProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect GET requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param [path] Path is the URL path to use for the current proxy request to node.\n */\n connectGetNodeProxy(name, path, _options) {\n return this.connectGetNodeProxyWithHttpInfo(name, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect GET requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to node.\n */\n connectGetNodeProxyWithPathWithHttpInfo(name, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectGetNodeProxyWithPath(name, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectGetNodeProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect GET requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to node.\n */\n connectGetNodeProxyWithPath(name, path, path2, _options) {\n return this.connectGetNodeProxyWithPathWithHttpInfo(name, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect HEAD requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the URL path to use for the current proxy request to pod.\n */\n connectHeadNamespacedPodProxyWithHttpInfo(name, namespace, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectHeadNamespacedPodProxy(name, namespace, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectHeadNamespacedPodProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect HEAD requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the URL path to use for the current proxy request to pod.\n */\n connectHeadNamespacedPodProxy(name, namespace, path, _options) {\n return this.connectHeadNamespacedPodProxyWithHttpInfo(name, namespace, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect HEAD requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to pod.\n */\n connectHeadNamespacedPodProxyWithPathWithHttpInfo(name, namespace, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectHeadNamespacedPodProxyWithPath(name, namespace, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectHeadNamespacedPodProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect HEAD requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to pod.\n */\n connectHeadNamespacedPodProxyWithPath(name, namespace, path, path2, _options) {\n return this.connectHeadNamespacedPodProxyWithPathWithHttpInfo(name, namespace, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect HEAD requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectHeadNamespacedServiceProxyWithHttpInfo(name, namespace, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectHeadNamespacedServiceProxy(name, namespace, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectHeadNamespacedServiceProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect HEAD requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectHeadNamespacedServiceProxy(name, namespace, path, _options) {\n return this.connectHeadNamespacedServiceProxyWithHttpInfo(name, namespace, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect HEAD requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectHeadNamespacedServiceProxyWithPathWithHttpInfo(name, namespace, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectHeadNamespacedServiceProxyWithPath(name, namespace, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectHeadNamespacedServiceProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect HEAD requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectHeadNamespacedServiceProxyWithPath(name, namespace, path, path2, _options) {\n return this.connectHeadNamespacedServiceProxyWithPathWithHttpInfo(name, namespace, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect HEAD requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param [path] Path is the URL path to use for the current proxy request to node.\n */\n connectHeadNodeProxyWithHttpInfo(name, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectHeadNodeProxy(name, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectHeadNodeProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect HEAD requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param [path] Path is the URL path to use for the current proxy request to node.\n */\n connectHeadNodeProxy(name, path, _options) {\n return this.connectHeadNodeProxyWithHttpInfo(name, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect HEAD requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to node.\n */\n connectHeadNodeProxyWithPathWithHttpInfo(name, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectHeadNodeProxyWithPath(name, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectHeadNodeProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect HEAD requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to node.\n */\n connectHeadNodeProxyWithPath(name, path, path2, _options) {\n return this.connectHeadNodeProxyWithPathWithHttpInfo(name, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect OPTIONS requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the URL path to use for the current proxy request to pod.\n */\n connectOptionsNamespacedPodProxyWithHttpInfo(name, namespace, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectOptionsNamespacedPodProxy(name, namespace, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectOptionsNamespacedPodProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect OPTIONS requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the URL path to use for the current proxy request to pod.\n */\n connectOptionsNamespacedPodProxy(name, namespace, path, _options) {\n return this.connectOptionsNamespacedPodProxyWithHttpInfo(name, namespace, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect OPTIONS requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to pod.\n */\n connectOptionsNamespacedPodProxyWithPathWithHttpInfo(name, namespace, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectOptionsNamespacedPodProxyWithPath(name, namespace, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectOptionsNamespacedPodProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect OPTIONS requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to pod.\n */\n connectOptionsNamespacedPodProxyWithPath(name, namespace, path, path2, _options) {\n return this.connectOptionsNamespacedPodProxyWithPathWithHttpInfo(name, namespace, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect OPTIONS requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectOptionsNamespacedServiceProxyWithHttpInfo(name, namespace, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectOptionsNamespacedServiceProxy(name, namespace, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectOptionsNamespacedServiceProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect OPTIONS requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectOptionsNamespacedServiceProxy(name, namespace, path, _options) {\n return this.connectOptionsNamespacedServiceProxyWithHttpInfo(name, namespace, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect OPTIONS requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectOptionsNamespacedServiceProxyWithPathWithHttpInfo(name, namespace, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectOptionsNamespacedServiceProxyWithPath(name, namespace, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectOptionsNamespacedServiceProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect OPTIONS requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectOptionsNamespacedServiceProxyWithPath(name, namespace, path, path2, _options) {\n return this.connectOptionsNamespacedServiceProxyWithPathWithHttpInfo(name, namespace, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect OPTIONS requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param [path] Path is the URL path to use for the current proxy request to node.\n */\n connectOptionsNodeProxyWithHttpInfo(name, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectOptionsNodeProxy(name, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectOptionsNodeProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect OPTIONS requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param [path] Path is the URL path to use for the current proxy request to node.\n */\n connectOptionsNodeProxy(name, path, _options) {\n return this.connectOptionsNodeProxyWithHttpInfo(name, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect OPTIONS requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to node.\n */\n connectOptionsNodeProxyWithPathWithHttpInfo(name, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectOptionsNodeProxyWithPath(name, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectOptionsNodeProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect OPTIONS requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to node.\n */\n connectOptionsNodeProxyWithPath(name, path, path2, _options) {\n return this.connectOptionsNodeProxyWithPathWithHttpInfo(name, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect PATCH requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the URL path to use for the current proxy request to pod.\n */\n connectPatchNamespacedPodProxyWithHttpInfo(name, namespace, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPatchNamespacedPodProxy(name, namespace, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPatchNamespacedPodProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect PATCH requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the URL path to use for the current proxy request to pod.\n */\n connectPatchNamespacedPodProxy(name, namespace, path, _options) {\n return this.connectPatchNamespacedPodProxyWithHttpInfo(name, namespace, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect PATCH requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to pod.\n */\n connectPatchNamespacedPodProxyWithPathWithHttpInfo(name, namespace, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPatchNamespacedPodProxyWithPath(name, namespace, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPatchNamespacedPodProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect PATCH requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to pod.\n */\n connectPatchNamespacedPodProxyWithPath(name, namespace, path, path2, _options) {\n return this.connectPatchNamespacedPodProxyWithPathWithHttpInfo(name, namespace, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect PATCH requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectPatchNamespacedServiceProxyWithHttpInfo(name, namespace, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPatchNamespacedServiceProxy(name, namespace, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPatchNamespacedServiceProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect PATCH requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectPatchNamespacedServiceProxy(name, namespace, path, _options) {\n return this.connectPatchNamespacedServiceProxyWithHttpInfo(name, namespace, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect PATCH requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectPatchNamespacedServiceProxyWithPathWithHttpInfo(name, namespace, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPatchNamespacedServiceProxyWithPath(name, namespace, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPatchNamespacedServiceProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect PATCH requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectPatchNamespacedServiceProxyWithPath(name, namespace, path, path2, _options) {\n return this.connectPatchNamespacedServiceProxyWithPathWithHttpInfo(name, namespace, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect PATCH requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param [path] Path is the URL path to use for the current proxy request to node.\n */\n connectPatchNodeProxyWithHttpInfo(name, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPatchNodeProxy(name, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPatchNodeProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect PATCH requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param [path] Path is the URL path to use for the current proxy request to node.\n */\n connectPatchNodeProxy(name, path, _options) {\n return this.connectPatchNodeProxyWithHttpInfo(name, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect PATCH requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to node.\n */\n connectPatchNodeProxyWithPathWithHttpInfo(name, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPatchNodeProxyWithPath(name, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPatchNodeProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect PATCH requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to node.\n */\n connectPatchNodeProxyWithPath(name, path, path2, _options) {\n return this.connectPatchNodeProxyWithPathWithHttpInfo(name, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect POST requests to attach of Pod\n * @param name name of the PodAttachOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [container] The container in which to execute the command. Defaults to only container if there is only one container in the pod.\n * @param [stderr] Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.\n * @param [stdin] Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.\n * @param [stdout] Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.\n * @param [tty] TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.\n */\n connectPostNamespacedPodAttachWithHttpInfo(name, namespace, container, stderr, stdin, stdout, tty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPostNamespacedPodAttach(name, namespace, container, stderr, stdin, stdout, tty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPostNamespacedPodAttachWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect POST requests to attach of Pod\n * @param name name of the PodAttachOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [container] The container in which to execute the command. Defaults to only container if there is only one container in the pod.\n * @param [stderr] Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.\n * @param [stdin] Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.\n * @param [stdout] Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.\n * @param [tty] TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.\n */\n connectPostNamespacedPodAttach(name, namespace, container, stderr, stdin, stdout, tty, _options) {\n return this.connectPostNamespacedPodAttachWithHttpInfo(name, namespace, container, stderr, stdin, stdout, tty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect POST requests to exec of Pod\n * @param name name of the PodExecOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [command] Command is the remote command to execute. argv array. Not executed within a shell.\n * @param [container] Container in which to execute the command. Defaults to only container if there is only one container in the pod.\n * @param [stderr] Redirect the standard error stream of the pod for this call.\n * @param [stdin] Redirect the standard input stream of the pod for this call. Defaults to false.\n * @param [stdout] Redirect the standard output stream of the pod for this call.\n * @param [tty] TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.\n */\n connectPostNamespacedPodExecWithHttpInfo(name, namespace, command, container, stderr, stdin, stdout, tty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPostNamespacedPodExec(name, namespace, command, container, stderr, stdin, stdout, tty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPostNamespacedPodExecWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect POST requests to exec of Pod\n * @param name name of the PodExecOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [command] Command is the remote command to execute. argv array. Not executed within a shell.\n * @param [container] Container in which to execute the command. Defaults to only container if there is only one container in the pod.\n * @param [stderr] Redirect the standard error stream of the pod for this call.\n * @param [stdin] Redirect the standard input stream of the pod for this call. Defaults to false.\n * @param [stdout] Redirect the standard output stream of the pod for this call.\n * @param [tty] TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.\n */\n connectPostNamespacedPodExec(name, namespace, command, container, stderr, stdin, stdout, tty, _options) {\n return this.connectPostNamespacedPodExecWithHttpInfo(name, namespace, command, container, stderr, stdin, stdout, tty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect POST requests to portforward of Pod\n * @param name name of the PodPortForwardOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [ports] List of ports to forward Required when using WebSockets\n */\n connectPostNamespacedPodPortforwardWithHttpInfo(name, namespace, ports, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPostNamespacedPodPortforward(name, namespace, ports, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPostNamespacedPodPortforwardWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect POST requests to portforward of Pod\n * @param name name of the PodPortForwardOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [ports] List of ports to forward Required when using WebSockets\n */\n connectPostNamespacedPodPortforward(name, namespace, ports, _options) {\n return this.connectPostNamespacedPodPortforwardWithHttpInfo(name, namespace, ports, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect POST requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the URL path to use for the current proxy request to pod.\n */\n connectPostNamespacedPodProxyWithHttpInfo(name, namespace, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPostNamespacedPodProxy(name, namespace, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPostNamespacedPodProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect POST requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the URL path to use for the current proxy request to pod.\n */\n connectPostNamespacedPodProxy(name, namespace, path, _options) {\n return this.connectPostNamespacedPodProxyWithHttpInfo(name, namespace, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect POST requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to pod.\n */\n connectPostNamespacedPodProxyWithPathWithHttpInfo(name, namespace, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPostNamespacedPodProxyWithPath(name, namespace, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPostNamespacedPodProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect POST requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to pod.\n */\n connectPostNamespacedPodProxyWithPath(name, namespace, path, path2, _options) {\n return this.connectPostNamespacedPodProxyWithPathWithHttpInfo(name, namespace, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect POST requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectPostNamespacedServiceProxyWithHttpInfo(name, namespace, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPostNamespacedServiceProxy(name, namespace, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPostNamespacedServiceProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect POST requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectPostNamespacedServiceProxy(name, namespace, path, _options) {\n return this.connectPostNamespacedServiceProxyWithHttpInfo(name, namespace, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect POST requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectPostNamespacedServiceProxyWithPathWithHttpInfo(name, namespace, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPostNamespacedServiceProxyWithPath(name, namespace, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPostNamespacedServiceProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect POST requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectPostNamespacedServiceProxyWithPath(name, namespace, path, path2, _options) {\n return this.connectPostNamespacedServiceProxyWithPathWithHttpInfo(name, namespace, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect POST requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param [path] Path is the URL path to use for the current proxy request to node.\n */\n connectPostNodeProxyWithHttpInfo(name, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPostNodeProxy(name, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPostNodeProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect POST requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param [path] Path is the URL path to use for the current proxy request to node.\n */\n connectPostNodeProxy(name, path, _options) {\n return this.connectPostNodeProxyWithHttpInfo(name, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect POST requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to node.\n */\n connectPostNodeProxyWithPathWithHttpInfo(name, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPostNodeProxyWithPath(name, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPostNodeProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect POST requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to node.\n */\n connectPostNodeProxyWithPath(name, path, path2, _options) {\n return this.connectPostNodeProxyWithPathWithHttpInfo(name, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect PUT requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the URL path to use for the current proxy request to pod.\n */\n connectPutNamespacedPodProxyWithHttpInfo(name, namespace, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPutNamespacedPodProxy(name, namespace, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPutNamespacedPodProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect PUT requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the URL path to use for the current proxy request to pod.\n */\n connectPutNamespacedPodProxy(name, namespace, path, _options) {\n return this.connectPutNamespacedPodProxyWithHttpInfo(name, namespace, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect PUT requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to pod.\n */\n connectPutNamespacedPodProxyWithPathWithHttpInfo(name, namespace, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPutNamespacedPodProxyWithPath(name, namespace, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPutNamespacedPodProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect PUT requests to proxy of Pod\n * @param name name of the PodProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to pod.\n */\n connectPutNamespacedPodProxyWithPath(name, namespace, path, path2, _options) {\n return this.connectPutNamespacedPodProxyWithPathWithHttpInfo(name, namespace, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect PUT requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectPutNamespacedServiceProxyWithHttpInfo(name, namespace, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPutNamespacedServiceProxy(name, namespace, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPutNamespacedServiceProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect PUT requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [path] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectPutNamespacedServiceProxy(name, namespace, path, _options) {\n return this.connectPutNamespacedServiceProxyWithHttpInfo(name, namespace, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect PUT requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectPutNamespacedServiceProxyWithPathWithHttpInfo(name, namespace, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPutNamespacedServiceProxyWithPath(name, namespace, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPutNamespacedServiceProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect PUT requests to proxy of Service\n * @param name name of the ServiceProxyOptions\n * @param namespace object name and auth scope, such as for teams and projects\n * @param path path to the resource\n * @param [path2] Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\n */\n connectPutNamespacedServiceProxyWithPath(name, namespace, path, path2, _options) {\n return this.connectPutNamespacedServiceProxyWithPathWithHttpInfo(name, namespace, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect PUT requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param [path] Path is the URL path to use for the current proxy request to node.\n */\n connectPutNodeProxyWithHttpInfo(name, path, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPutNodeProxy(name, path, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPutNodeProxyWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect PUT requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param [path] Path is the URL path to use for the current proxy request to node.\n */\n connectPutNodeProxy(name, path, _options) {\n return this.connectPutNodeProxyWithHttpInfo(name, path, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * connect PUT requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to node.\n */\n connectPutNodeProxyWithPathWithHttpInfo(name, path, path2, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.connectPutNodeProxyWithPath(name, path, path2, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.connectPutNodeProxyWithPathWithHttpInfo(rsp)));\n }));\n }\n /**\n * connect PUT requests to proxy of Node\n * @param name name of the NodeProxyOptions\n * @param path path to the resource\n * @param [path2] Path is the URL path to use for the current proxy request to node.\n */\n connectPutNodeProxyWithPath(name, path, path2, _options) {\n return this.connectPutNodeProxyWithPathWithHttpInfo(name, path, path2, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a Namespace\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespaceWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespace(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespaceWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a Namespace\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespace(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespaceWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a Binding\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createNamespacedBindingWithHttpInfo(namespace, body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedBinding(namespace, body, dryRun, fieldManager, fieldValidation, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a Binding\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createNamespacedBinding(namespace, body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n return this.createNamespacedBindingWithHttpInfo(namespace, body, dryRun, fieldManager, fieldValidation, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ConfigMap\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedConfigMapWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedConfigMap(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedConfigMapWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ConfigMap\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedConfigMap(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedConfigMapWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create Endpoints\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedEndpointsWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedEndpoints(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedEndpointsWithHttpInfo(rsp)));\n }));\n }\n /**\n * create Endpoints\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedEndpoints(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedEndpointsWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create an Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedEventWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedEvent(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedEventWithHttpInfo(rsp)));\n }));\n }\n /**\n * create an Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedEvent(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedEventWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a LimitRange\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedLimitRangeWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedLimitRange(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedLimitRangeWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a LimitRange\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedLimitRange(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedLimitRangeWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedPersistentVolumeClaimWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedPersistentVolumeClaim(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedPersistentVolumeClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedPersistentVolumeClaim(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedPersistentVolumeClaimWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedPodWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedPod(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedPodWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedPod(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedPodWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create binding of a Pod\n * @param name name of the Binding\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createNamespacedPodBindingWithHttpInfo(name, namespace, body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedPodBinding(name, namespace, body, dryRun, fieldManager, fieldValidation, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedPodBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * create binding of a Pod\n * @param name name of the Binding\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createNamespacedPodBinding(name, namespace, body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n return this.createNamespacedPodBindingWithHttpInfo(name, namespace, body, dryRun, fieldManager, fieldValidation, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create eviction of a Pod\n * @param name name of the Eviction\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createNamespacedPodEvictionWithHttpInfo(name, namespace, body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedPodEviction(name, namespace, body, dryRun, fieldManager, fieldValidation, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedPodEvictionWithHttpInfo(rsp)));\n }));\n }\n /**\n * create eviction of a Pod\n * @param name name of the Eviction\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createNamespacedPodEviction(name, namespace, body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n return this.createNamespacedPodEvictionWithHttpInfo(name, namespace, body, dryRun, fieldManager, fieldValidation, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a PodTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedPodTemplateWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedPodTemplate(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedPodTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a PodTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedPodTemplate(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedPodTemplateWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedReplicationControllerWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedReplicationController(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedReplicationControllerWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedReplicationController(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedReplicationControllerWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedResourceQuotaWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedResourceQuota(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedResourceQuotaWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedResourceQuota(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedResourceQuotaWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a Secret\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedSecretWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedSecret(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedSecretWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a Secret\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedSecret(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedSecretWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedServiceWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedService(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedServiceWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedService(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedServiceWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ServiceAccount\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedServiceAccountWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedServiceAccount(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedServiceAccountWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ServiceAccount\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedServiceAccount(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedServiceAccountWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create token of a ServiceAccount\n * @param name name of the TokenRequest\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createNamespacedServiceAccountTokenWithHttpInfo(name, namespace, body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedServiceAccountToken(name, namespace, body, dryRun, fieldManager, fieldValidation, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedServiceAccountTokenWithHttpInfo(rsp)));\n }));\n }\n /**\n * create token of a ServiceAccount\n * @param name name of the TokenRequest\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n createNamespacedServiceAccountToken(name, namespace, body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n return this.createNamespacedServiceAccountTokenWithHttpInfo(name, namespace, body, dryRun, fieldManager, fieldValidation, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a Node\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNodeWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNode(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNodeWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a Node\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNode(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNodeWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a PersistentVolume\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createPersistentVolumeWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createPersistentVolume(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createPersistentVolumeWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a PersistentVolume\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createPersistentVolume(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createPersistentVolumeWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ConfigMap\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedConfigMapWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedConfigMap(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedConfigMapWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ConfigMap\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedConfigMap(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedConfigMapWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of Endpoints\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedEndpointsWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedEndpoints(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedEndpointsWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of Endpoints\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedEndpoints(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedEndpointsWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedEventWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedEvent(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedEventWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedEvent(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedEventWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of LimitRange\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedLimitRangeWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedLimitRange(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedLimitRangeWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of LimitRange\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedLimitRange(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedLimitRangeWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedPersistentVolumeClaimWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedPersistentVolumeClaim(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedPersistentVolumeClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedPersistentVolumeClaim(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedPersistentVolumeClaimWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedPodWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedPod(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedPodWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedPod(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedPodWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of PodTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedPodTemplateWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedPodTemplate(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedPodTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of PodTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedPodTemplate(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedPodTemplateWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedReplicationControllerWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedReplicationController(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedReplicationControllerWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedReplicationController(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedReplicationControllerWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedResourceQuotaWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedResourceQuota(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedResourceQuotaWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedResourceQuota(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedResourceQuotaWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of Secret\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedSecretWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedSecret(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedSecretWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of Secret\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedSecret(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedSecretWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedServiceWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedService(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedServiceWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedService(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedServiceWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ServiceAccount\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedServiceAccountWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedServiceAccount(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedServiceAccountWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ServiceAccount\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedServiceAccount(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedServiceAccountWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of Node\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNodeWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNode(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNodeWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of Node\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNode(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNodeWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of PersistentVolume\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionPersistentVolumeWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionPersistentVolume(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionPersistentVolumeWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of PersistentVolume\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionPersistentVolume(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionPersistentVolumeWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a Namespace\n * @param name name of the Namespace\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespaceWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespace(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespaceWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a Namespace\n * @param name name of the Namespace\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespace(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespaceWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ConfigMap\n * @param name name of the ConfigMap\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedConfigMapWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedConfigMap(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedConfigMapWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ConfigMap\n * @param name name of the ConfigMap\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedConfigMap(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedConfigMapWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete Endpoints\n * @param name name of the Endpoints\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedEndpointsWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedEndpoints(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedEndpointsWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete Endpoints\n * @param name name of the Endpoints\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedEndpoints(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedEndpointsWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete an Event\n * @param name name of the Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedEventWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedEvent(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedEventWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete an Event\n * @param name name of the Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedEvent(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedEventWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a LimitRange\n * @param name name of the LimitRange\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedLimitRangeWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedLimitRange(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedLimitRangeWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a LimitRange\n * @param name name of the LimitRange\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedLimitRange(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedLimitRangeWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a PersistentVolumeClaim\n * @param name name of the PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedPersistentVolumeClaimWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedPersistentVolumeClaim(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedPersistentVolumeClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a PersistentVolumeClaim\n * @param name name of the PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedPersistentVolumeClaim(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedPersistentVolumeClaimWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedPodWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedPod(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedPodWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedPod(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedPodWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a PodTemplate\n * @param name name of the PodTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedPodTemplateWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedPodTemplate(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedPodTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a PodTemplate\n * @param name name of the PodTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedPodTemplate(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedPodTemplateWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ReplicationController\n * @param name name of the ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedReplicationControllerWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedReplicationController(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedReplicationControllerWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ReplicationController\n * @param name name of the ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedReplicationController(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedReplicationControllerWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ResourceQuota\n * @param name name of the ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedResourceQuotaWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedResourceQuota(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedResourceQuotaWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ResourceQuota\n * @param name name of the ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedResourceQuota(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedResourceQuotaWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a Secret\n * @param name name of the Secret\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedSecretWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedSecret(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedSecretWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a Secret\n * @param name name of the Secret\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedSecret(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedSecretWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a Service\n * @param name name of the Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedServiceWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedService(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedServiceWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a Service\n * @param name name of the Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedService(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedServiceWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ServiceAccount\n * @param name name of the ServiceAccount\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedServiceAccountWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedServiceAccount(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedServiceAccountWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ServiceAccount\n * @param name name of the ServiceAccount\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedServiceAccount(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedServiceAccountWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a Node\n * @param name name of the Node\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNodeWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNode(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNodeWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a Node\n * @param name name of the Node\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNode(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNodeWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a PersistentVolume\n * @param name name of the PersistentVolume\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deletePersistentVolumeWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deletePersistentVolume(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deletePersistentVolumeWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a PersistentVolume\n * @param name name of the PersistentVolume\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deletePersistentVolume(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deletePersistentVolumeWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list objects of kind ComponentStatus\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listComponentStatusWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listComponentStatus(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listComponentStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * list objects of kind ComponentStatus\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listComponentStatus(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listComponentStatusWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ConfigMap\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listConfigMapForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listConfigMapForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listConfigMapForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ConfigMap\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listConfigMapForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listConfigMapForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Endpoints\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listEndpointsForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listEndpointsForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listEndpointsForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Endpoints\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listEndpointsForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listEndpointsForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Event\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listEventForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listEventForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listEventForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Event\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listEventForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listEventForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind LimitRange\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listLimitRangeForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listLimitRangeForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listLimitRangeForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind LimitRange\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listLimitRangeForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listLimitRangeForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Namespace\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespaceWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespace(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespaceWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Namespace\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespace(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespaceWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ConfigMap\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedConfigMapWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedConfigMap(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedConfigMapWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ConfigMap\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedConfigMap(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedConfigMapWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Endpoints\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedEndpointsWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedEndpoints(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedEndpointsWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Endpoints\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedEndpoints(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedEndpointsWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedEventWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedEvent(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedEventWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedEvent(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedEventWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind LimitRange\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedLimitRangeWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedLimitRange(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedLimitRangeWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind LimitRange\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedLimitRange(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedLimitRangeWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedPersistentVolumeClaimWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedPersistentVolumeClaim(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedPersistentVolumeClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedPersistentVolumeClaim(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedPersistentVolumeClaimWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedPodWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedPod(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedPodWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedPod(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedPodWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind PodTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedPodTemplateWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedPodTemplate(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedPodTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind PodTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedPodTemplate(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedPodTemplateWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedReplicationControllerWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedReplicationController(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedReplicationControllerWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedReplicationController(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedReplicationControllerWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedResourceQuotaWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedResourceQuota(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedResourceQuotaWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedResourceQuota(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedResourceQuotaWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Secret\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedSecretWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedSecret(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedSecretWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Secret\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedSecret(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedSecretWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedServiceWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedService(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedServiceWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedService(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedServiceWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ServiceAccount\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedServiceAccountWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedServiceAccount(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedServiceAccountWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ServiceAccount\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedServiceAccount(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedServiceAccountWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Node\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNodeWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNode(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNodeWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Node\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNode(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNodeWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind PersistentVolume\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listPersistentVolumeWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listPersistentVolume(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listPersistentVolumeWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind PersistentVolume\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listPersistentVolume(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listPersistentVolumeWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind PersistentVolumeClaim\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listPersistentVolumeClaimForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listPersistentVolumeClaimForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listPersistentVolumeClaimForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind PersistentVolumeClaim\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listPersistentVolumeClaimForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listPersistentVolumeClaimForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Pod\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listPodForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listPodForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listPodForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Pod\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listPodForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listPodForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind PodTemplate\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listPodTemplateForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listPodTemplateForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listPodTemplateForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind PodTemplate\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listPodTemplateForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listPodTemplateForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ReplicationController\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listReplicationControllerForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listReplicationControllerForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listReplicationControllerForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ReplicationController\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listReplicationControllerForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listReplicationControllerForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ResourceQuota\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceQuotaForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listResourceQuotaForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listResourceQuotaForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ResourceQuota\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceQuotaForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listResourceQuotaForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Secret\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listSecretForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listSecretForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listSecretForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Secret\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listSecretForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listSecretForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ServiceAccount\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listServiceAccountForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listServiceAccountForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listServiceAccountForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ServiceAccount\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listServiceAccountForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listServiceAccountForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Service\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listServiceForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listServiceForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listServiceForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Service\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listServiceForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listServiceForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified Namespace\n * @param name name of the Namespace\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespaceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespace(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespaceWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified Namespace\n * @param name name of the Namespace\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespace(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespaceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified Namespace\n * @param name name of the Namespace\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespaceStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespaceStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespaceStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified Namespace\n * @param name name of the Namespace\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespaceStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespaceStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ConfigMap\n * @param name name of the ConfigMap\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedConfigMapWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedConfigMap(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedConfigMapWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ConfigMap\n * @param name name of the ConfigMap\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedConfigMap(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedConfigMapWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified Endpoints\n * @param name name of the Endpoints\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedEndpointsWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedEndpoints(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedEndpointsWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified Endpoints\n * @param name name of the Endpoints\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedEndpoints(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedEndpointsWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified Event\n * @param name name of the Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedEventWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedEvent(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedEventWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified Event\n * @param name name of the Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedEvent(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedEventWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified LimitRange\n * @param name name of the LimitRange\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedLimitRangeWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedLimitRange(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedLimitRangeWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified LimitRange\n * @param name name of the LimitRange\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedLimitRange(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedLimitRangeWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified PersistentVolumeClaim\n * @param name name of the PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedPersistentVolumeClaimWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedPersistentVolumeClaim(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedPersistentVolumeClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified PersistentVolumeClaim\n * @param name name of the PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedPersistentVolumeClaim(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedPersistentVolumeClaimWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified PersistentVolumeClaim\n * @param name name of the PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedPersistentVolumeClaimStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedPersistentVolumeClaimStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedPersistentVolumeClaimStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified PersistentVolumeClaim\n * @param name name of the PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedPersistentVolumeClaimStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedPersistentVolumeClaimStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedPodWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedPod(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedPodWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedPod(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedPodWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update ephemeralcontainers of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedPodEphemeralcontainersWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedPodEphemeralcontainers(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedPodEphemeralcontainersWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update ephemeralcontainers of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedPodEphemeralcontainers(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedPodEphemeralcontainersWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update resize of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedPodResizeWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedPodResize(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedPodResizeWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update resize of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedPodResize(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedPodResizeWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedPodStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedPodStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedPodStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedPodStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedPodStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified PodTemplate\n * @param name name of the PodTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedPodTemplateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedPodTemplate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedPodTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified PodTemplate\n * @param name name of the PodTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedPodTemplate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedPodTemplateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ReplicationController\n * @param name name of the ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedReplicationControllerWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedReplicationController(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedReplicationControllerWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ReplicationController\n * @param name name of the ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedReplicationController(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedReplicationControllerWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update scale of the specified ReplicationController\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedReplicationControllerScaleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedReplicationControllerScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedReplicationControllerScaleWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update scale of the specified ReplicationController\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedReplicationControllerScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedReplicationControllerScaleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified ReplicationController\n * @param name name of the ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedReplicationControllerStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedReplicationControllerStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedReplicationControllerStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified ReplicationController\n * @param name name of the ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedReplicationControllerStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedReplicationControllerStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ResourceQuota\n * @param name name of the ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceQuotaWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedResourceQuota(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedResourceQuotaWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ResourceQuota\n * @param name name of the ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceQuota(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedResourceQuotaWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified ResourceQuota\n * @param name name of the ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceQuotaStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedResourceQuotaStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedResourceQuotaStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified ResourceQuota\n * @param name name of the ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceQuotaStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedResourceQuotaStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified Secret\n * @param name name of the Secret\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedSecretWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedSecret(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedSecretWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified Secret\n * @param name name of the Secret\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedSecret(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedSecretWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified Service\n * @param name name of the Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedServiceWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedService(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedServiceWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified Service\n * @param name name of the Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedService(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedServiceWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ServiceAccount\n * @param name name of the ServiceAccount\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedServiceAccountWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedServiceAccount(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedServiceAccountWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ServiceAccount\n * @param name name of the ServiceAccount\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedServiceAccount(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedServiceAccountWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified Service\n * @param name name of the Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedServiceStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedServiceStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedServiceStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified Service\n * @param name name of the Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedServiceStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedServiceStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified Node\n * @param name name of the Node\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNodeWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNode(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNodeWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified Node\n * @param name name of the Node\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNode(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNodeWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified Node\n * @param name name of the Node\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNodeStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNodeStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNodeStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified Node\n * @param name name of the Node\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNodeStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNodeStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified PersistentVolume\n * @param name name of the PersistentVolume\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchPersistentVolumeWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchPersistentVolume(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchPersistentVolumeWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified PersistentVolume\n * @param name name of the PersistentVolume\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchPersistentVolume(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchPersistentVolumeWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified PersistentVolume\n * @param name name of the PersistentVolume\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchPersistentVolumeStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchPersistentVolumeStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchPersistentVolumeStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified PersistentVolume\n * @param name name of the PersistentVolume\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchPersistentVolumeStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchPersistentVolumeStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ComponentStatus\n * @param name name of the ComponentStatus\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readComponentStatusWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readComponentStatus(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readComponentStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ComponentStatus\n * @param name name of the ComponentStatus\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readComponentStatus(name, pretty, _options) {\n return this.readComponentStatusWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified Namespace\n * @param name name of the Namespace\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespaceWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespace(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespaceWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified Namespace\n * @param name name of the Namespace\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespace(name, pretty, _options) {\n return this.readNamespaceWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified Namespace\n * @param name name of the Namespace\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespaceStatusWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespaceStatus(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespaceStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified Namespace\n * @param name name of the Namespace\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespaceStatus(name, pretty, _options) {\n return this.readNamespaceStatusWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ConfigMap\n * @param name name of the ConfigMap\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedConfigMapWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedConfigMap(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedConfigMapWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ConfigMap\n * @param name name of the ConfigMap\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedConfigMap(name, namespace, pretty, _options) {\n return this.readNamespacedConfigMapWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified Endpoints\n * @param name name of the Endpoints\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedEndpointsWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedEndpoints(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedEndpointsWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified Endpoints\n * @param name name of the Endpoints\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedEndpoints(name, namespace, pretty, _options) {\n return this.readNamespacedEndpointsWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified Event\n * @param name name of the Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedEventWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedEvent(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedEventWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified Event\n * @param name name of the Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedEvent(name, namespace, pretty, _options) {\n return this.readNamespacedEventWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified LimitRange\n * @param name name of the LimitRange\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedLimitRangeWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedLimitRange(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedLimitRangeWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified LimitRange\n * @param name name of the LimitRange\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedLimitRange(name, namespace, pretty, _options) {\n return this.readNamespacedLimitRangeWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified PersistentVolumeClaim\n * @param name name of the PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedPersistentVolumeClaimWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedPersistentVolumeClaim(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedPersistentVolumeClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified PersistentVolumeClaim\n * @param name name of the PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedPersistentVolumeClaim(name, namespace, pretty, _options) {\n return this.readNamespacedPersistentVolumeClaimWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified PersistentVolumeClaim\n * @param name name of the PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedPersistentVolumeClaimStatusWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedPersistentVolumeClaimStatus(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedPersistentVolumeClaimStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified PersistentVolumeClaim\n * @param name name of the PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedPersistentVolumeClaimStatus(name, namespace, pretty, _options) {\n return this.readNamespacedPersistentVolumeClaimStatusWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedPodWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedPod(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedPodWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedPod(name, namespace, pretty, _options) {\n return this.readNamespacedPodWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read ephemeralcontainers of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedPodEphemeralcontainersWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedPodEphemeralcontainers(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedPodEphemeralcontainersWithHttpInfo(rsp)));\n }));\n }\n /**\n * read ephemeralcontainers of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedPodEphemeralcontainers(name, namespace, pretty, _options) {\n return this.readNamespacedPodEphemeralcontainersWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read log of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [container] The container for which to stream logs. Defaults to only container if there is one container in the pod.\n * @param [follow] Follow the log stream of the pod. Defaults to false.\n * @param [insecureSkipTLSVerifyBackend] insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the serving certificate of the backend it is connecting to. This will make the HTTPS connection between the apiserver and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real kubelet. If the kubelet is configured to verify the apiserver\\'s TLS credentials, it does not mean the connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept the actual log data coming from the real kubelet).\n * @param [limitBytes] If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [previous] Return previous terminated container logs. Defaults to false.\n * @param [sinceSeconds] A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.\n * @param [stream] Specify which container log stream to return to the client. Acceptable values are \\"All\\", \\"Stdout\\" and \\"Stderr\\". If not specified, \\"All\\" is used, and both stdout and stderr are returned interleaved. Note that when \\"TailLines\\" is specified, \\"Stream\\" can only be set to nil or \\"All\\".\n * @param [tailLines] If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime. Note that when \\"TailLines\\" is specified, \\"Stream\\" can only be set to nil or \\"All\\".\n * @param [timestamps] If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.\n */\n readNamespacedPodLogWithHttpInfo(name, namespace, container, follow, insecureSkipTLSVerifyBackend, limitBytes, pretty, previous, sinceSeconds, stream, tailLines, timestamps, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedPodLog(name, namespace, container, follow, insecureSkipTLSVerifyBackend, limitBytes, pretty, previous, sinceSeconds, stream, tailLines, timestamps, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedPodLogWithHttpInfo(rsp)));\n }));\n }\n /**\n * read log of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [container] The container for which to stream logs. Defaults to only container if there is one container in the pod.\n * @param [follow] Follow the log stream of the pod. Defaults to false.\n * @param [insecureSkipTLSVerifyBackend] insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the serving certificate of the backend it is connecting to. This will make the HTTPS connection between the apiserver and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real kubelet. If the kubelet is configured to verify the apiserver\\'s TLS credentials, it does not mean the connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept the actual log data coming from the real kubelet).\n * @param [limitBytes] If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [previous] Return previous terminated container logs. Defaults to false.\n * @param [sinceSeconds] A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.\n * @param [stream] Specify which container log stream to return to the client. Acceptable values are \\"All\\", \\"Stdout\\" and \\"Stderr\\". If not specified, \\"All\\" is used, and both stdout and stderr are returned interleaved. Note that when \\"TailLines\\" is specified, \\"Stream\\" can only be set to nil or \\"All\\".\n * @param [tailLines] If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime. Note that when \\"TailLines\\" is specified, \\"Stream\\" can only be set to nil or \\"All\\".\n * @param [timestamps] If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.\n */\n readNamespacedPodLog(name, namespace, container, follow, insecureSkipTLSVerifyBackend, limitBytes, pretty, previous, sinceSeconds, stream, tailLines, timestamps, _options) {\n return this.readNamespacedPodLogWithHttpInfo(name, namespace, container, follow, insecureSkipTLSVerifyBackend, limitBytes, pretty, previous, sinceSeconds, stream, tailLines, timestamps, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read resize of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedPodResizeWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedPodResize(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedPodResizeWithHttpInfo(rsp)));\n }));\n }\n /**\n * read resize of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedPodResize(name, namespace, pretty, _options) {\n return this.readNamespacedPodResizeWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedPodStatusWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedPodStatus(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedPodStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedPodStatus(name, namespace, pretty, _options) {\n return this.readNamespacedPodStatusWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified PodTemplate\n * @param name name of the PodTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedPodTemplateWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedPodTemplate(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedPodTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified PodTemplate\n * @param name name of the PodTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedPodTemplate(name, namespace, pretty, _options) {\n return this.readNamespacedPodTemplateWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ReplicationController\n * @param name name of the ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedReplicationControllerWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedReplicationController(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedReplicationControllerWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ReplicationController\n * @param name name of the ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedReplicationController(name, namespace, pretty, _options) {\n return this.readNamespacedReplicationControllerWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read scale of the specified ReplicationController\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedReplicationControllerScaleWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedReplicationControllerScale(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedReplicationControllerScaleWithHttpInfo(rsp)));\n }));\n }\n /**\n * read scale of the specified ReplicationController\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedReplicationControllerScale(name, namespace, pretty, _options) {\n return this.readNamespacedReplicationControllerScaleWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified ReplicationController\n * @param name name of the ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedReplicationControllerStatusWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedReplicationControllerStatus(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedReplicationControllerStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified ReplicationController\n * @param name name of the ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedReplicationControllerStatus(name, namespace, pretty, _options) {\n return this.readNamespacedReplicationControllerStatusWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ResourceQuota\n * @param name name of the ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceQuotaWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedResourceQuota(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedResourceQuotaWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ResourceQuota\n * @param name name of the ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceQuota(name, namespace, pretty, _options) {\n return this.readNamespacedResourceQuotaWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified ResourceQuota\n * @param name name of the ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceQuotaStatusWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedResourceQuotaStatus(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedResourceQuotaStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified ResourceQuota\n * @param name name of the ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceQuotaStatus(name, namespace, pretty, _options) {\n return this.readNamespacedResourceQuotaStatusWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified Secret\n * @param name name of the Secret\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedSecretWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedSecret(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedSecretWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified Secret\n * @param name name of the Secret\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedSecret(name, namespace, pretty, _options) {\n return this.readNamespacedSecretWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified Service\n * @param name name of the Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedServiceWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedService(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedServiceWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified Service\n * @param name name of the Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedService(name, namespace, pretty, _options) {\n return this.readNamespacedServiceWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ServiceAccount\n * @param name name of the ServiceAccount\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedServiceAccountWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedServiceAccount(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedServiceAccountWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ServiceAccount\n * @param name name of the ServiceAccount\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedServiceAccount(name, namespace, pretty, _options) {\n return this.readNamespacedServiceAccountWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified Service\n * @param name name of the Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedServiceStatusWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedServiceStatus(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedServiceStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified Service\n * @param name name of the Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedServiceStatus(name, namespace, pretty, _options) {\n return this.readNamespacedServiceStatusWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified Node\n * @param name name of the Node\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNodeWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNode(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNodeWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified Node\n * @param name name of the Node\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNode(name, pretty, _options) {\n return this.readNodeWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified Node\n * @param name name of the Node\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNodeStatusWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNodeStatus(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNodeStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified Node\n * @param name name of the Node\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNodeStatus(name, pretty, _options) {\n return this.readNodeStatusWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified PersistentVolume\n * @param name name of the PersistentVolume\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readPersistentVolumeWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readPersistentVolume(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readPersistentVolumeWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified PersistentVolume\n * @param name name of the PersistentVolume\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readPersistentVolume(name, pretty, _options) {\n return this.readPersistentVolumeWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified PersistentVolume\n * @param name name of the PersistentVolume\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readPersistentVolumeStatusWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readPersistentVolumeStatus(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readPersistentVolumeStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified PersistentVolume\n * @param name name of the PersistentVolume\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readPersistentVolumeStatus(name, pretty, _options) {\n return this.readPersistentVolumeStatusWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified Namespace\n * @param name name of the Namespace\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespaceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespace(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespaceWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified Namespace\n * @param name name of the Namespace\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespace(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespaceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace finalize of the specified Namespace\n * @param name name of the Namespace\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n replaceNamespaceFinalizeWithHttpInfo(name, body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespaceFinalize(name, body, dryRun, fieldManager, fieldValidation, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespaceFinalizeWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace finalize of the specified Namespace\n * @param name name of the Namespace\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n replaceNamespaceFinalize(name, body, dryRun, fieldManager, fieldValidation, pretty, _options) {\n return this.replaceNamespaceFinalizeWithHttpInfo(name, body, dryRun, fieldManager, fieldValidation, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified Namespace\n * @param name name of the Namespace\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespaceStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespaceStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespaceStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified Namespace\n * @param name name of the Namespace\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespaceStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespaceStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ConfigMap\n * @param name name of the ConfigMap\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedConfigMapWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedConfigMap(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedConfigMapWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ConfigMap\n * @param name name of the ConfigMap\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedConfigMap(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedConfigMapWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified Endpoints\n * @param name name of the Endpoints\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedEndpointsWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedEndpoints(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedEndpointsWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified Endpoints\n * @param name name of the Endpoints\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedEndpoints(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedEndpointsWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified Event\n * @param name name of the Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedEventWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedEvent(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedEventWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified Event\n * @param name name of the Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedEvent(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedEventWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified LimitRange\n * @param name name of the LimitRange\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedLimitRangeWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedLimitRange(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedLimitRangeWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified LimitRange\n * @param name name of the LimitRange\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedLimitRange(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedLimitRangeWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified PersistentVolumeClaim\n * @param name name of the PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedPersistentVolumeClaimWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedPersistentVolumeClaim(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedPersistentVolumeClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified PersistentVolumeClaim\n * @param name name of the PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedPersistentVolumeClaim(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedPersistentVolumeClaimWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified PersistentVolumeClaim\n * @param name name of the PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedPersistentVolumeClaimStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedPersistentVolumeClaimStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedPersistentVolumeClaimStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified PersistentVolumeClaim\n * @param name name of the PersistentVolumeClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedPersistentVolumeClaimStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedPersistentVolumeClaimStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedPodWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedPod(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedPodWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedPod(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedPodWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace ephemeralcontainers of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedPodEphemeralcontainersWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedPodEphemeralcontainers(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedPodEphemeralcontainersWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace ephemeralcontainers of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedPodEphemeralcontainers(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedPodEphemeralcontainersWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace resize of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedPodResizeWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedPodResize(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedPodResizeWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace resize of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedPodResize(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedPodResizeWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedPodStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedPodStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedPodStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified Pod\n * @param name name of the Pod\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedPodStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedPodStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified PodTemplate\n * @param name name of the PodTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedPodTemplateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedPodTemplate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedPodTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified PodTemplate\n * @param name name of the PodTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedPodTemplate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedPodTemplateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ReplicationController\n * @param name name of the ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedReplicationControllerWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedReplicationController(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedReplicationControllerWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ReplicationController\n * @param name name of the ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedReplicationController(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedReplicationControllerWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace scale of the specified ReplicationController\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedReplicationControllerScaleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedReplicationControllerScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedReplicationControllerScaleWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace scale of the specified ReplicationController\n * @param name name of the Scale\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedReplicationControllerScale(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedReplicationControllerScaleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified ReplicationController\n * @param name name of the ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedReplicationControllerStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedReplicationControllerStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedReplicationControllerStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified ReplicationController\n * @param name name of the ReplicationController\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedReplicationControllerStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedReplicationControllerStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ResourceQuota\n * @param name name of the ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceQuotaWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedResourceQuota(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedResourceQuotaWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ResourceQuota\n * @param name name of the ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceQuota(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedResourceQuotaWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified ResourceQuota\n * @param name name of the ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceQuotaStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedResourceQuotaStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedResourceQuotaStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified ResourceQuota\n * @param name name of the ResourceQuota\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceQuotaStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedResourceQuotaStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified Secret\n * @param name name of the Secret\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedSecretWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedSecret(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedSecretWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified Secret\n * @param name name of the Secret\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedSecret(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedSecretWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified Service\n * @param name name of the Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedServiceWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedService(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedServiceWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified Service\n * @param name name of the Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedService(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedServiceWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ServiceAccount\n * @param name name of the ServiceAccount\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedServiceAccountWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedServiceAccount(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedServiceAccountWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ServiceAccount\n * @param name name of the ServiceAccount\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedServiceAccount(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedServiceAccountWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified Service\n * @param name name of the Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedServiceStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedServiceStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedServiceStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified Service\n * @param name name of the Service\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedServiceStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedServiceStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified Node\n * @param name name of the Node\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNodeWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNode(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNodeWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified Node\n * @param name name of the Node\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNode(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNodeWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified Node\n * @param name name of the Node\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNodeStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNodeStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNodeStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified Node\n * @param name name of the Node\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNodeStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNodeStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified PersistentVolume\n * @param name name of the PersistentVolume\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replacePersistentVolumeWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replacePersistentVolume(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replacePersistentVolumeWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified PersistentVolume\n * @param name name of the PersistentVolume\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replacePersistentVolume(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replacePersistentVolumeWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified PersistentVolume\n * @param name name of the PersistentVolume\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replacePersistentVolumeStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replacePersistentVolumeStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replacePersistentVolumeStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified PersistentVolume\n * @param name name of the PersistentVolume\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replacePersistentVolumeStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replacePersistentVolumeStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { CustomObjectsApiRequestFactory, CustomObjectsApiResponseProcessor } from \"../apis/CustomObjectsApi.js\";\nexport class ObservableCustomObjectsApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new CustomObjectsApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new CustomObjectsApiResponseProcessor();\n }\n /**\n * Creates a cluster scoped Custom object\n * @param group The custom resource\\'s group name\n * @param version The custom resource\\'s version\n * @param plural The custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param body The JSON schema of the Resource to create.\n * @param [pretty] If \\'true\\', then the output is pretty printed.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n */\n createClusterCustomObjectWithHttpInfo(group, version, plural, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createClusterCustomObject(group, version, plural, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createClusterCustomObjectWithHttpInfo(rsp)));\n }));\n }\n /**\n * Creates a cluster scoped Custom object\n * @param group The custom resource\\'s group name\n * @param version The custom resource\\'s version\n * @param plural The custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param body The JSON schema of the Resource to create.\n * @param [pretty] If \\'true\\', then the output is pretty printed.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n */\n createClusterCustomObject(group, version, plural, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createClusterCustomObjectWithHttpInfo(group, version, plural, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * Creates a namespace scoped Custom object\n * @param group The custom resource\\'s group name\n * @param version The custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural The custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param body The JSON schema of the Resource to create.\n * @param [pretty] If \\'true\\', then the output is pretty printed.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n */\n createNamespacedCustomObjectWithHttpInfo(group, version, namespace, plural, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedCustomObject(group, version, namespace, plural, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedCustomObjectWithHttpInfo(rsp)));\n }));\n }\n /**\n * Creates a namespace scoped Custom object\n * @param group The custom resource\\'s group name\n * @param version The custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural The custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param body The JSON schema of the Resource to create.\n * @param [pretty] If \\'true\\', then the output is pretty printed.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n */\n createNamespacedCustomObject(group, version, namespace, plural, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedCustomObjectWithHttpInfo(group, version, namespace, plural, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * Deletes the specified cluster scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom object\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [body]\n */\n deleteClusterCustomObjectWithHttpInfo(group, version, plural, name, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteClusterCustomObject(group, version, plural, name, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteClusterCustomObjectWithHttpInfo(rsp)));\n }));\n }\n /**\n * Deletes the specified cluster scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom object\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [body]\n */\n deleteClusterCustomObject(group, version, plural, name, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, body, _options) {\n return this.deleteClusterCustomObjectWithHttpInfo(group, version, plural, name, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * Delete collection of cluster scoped custom objects\n * @param group The custom resource\\'s group name\n * @param version The custom resource\\'s version\n * @param plural The custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param [pretty] If \\'true\\', then the output is pretty printed.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [body]\n */\n deleteCollectionClusterCustomObjectWithHttpInfo(group, version, plural, pretty, labelSelector, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionClusterCustomObject(group, version, plural, pretty, labelSelector, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionClusterCustomObjectWithHttpInfo(rsp)));\n }));\n }\n /**\n * Delete collection of cluster scoped custom objects\n * @param group The custom resource\\'s group name\n * @param version The custom resource\\'s version\n * @param plural The custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param [pretty] If \\'true\\', then the output is pretty printed.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [body]\n */\n deleteCollectionClusterCustomObject(group, version, plural, pretty, labelSelector, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, body, _options) {\n return this.deleteCollectionClusterCustomObjectWithHttpInfo(group, version, plural, pretty, labelSelector, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * Delete collection of namespace scoped custom objects\n * @param group The custom resource\\'s group name\n * @param version The custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural The custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param [pretty] If \\'true\\', then the output is pretty printed.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [body]\n */\n deleteCollectionNamespacedCustomObjectWithHttpInfo(group, version, namespace, plural, pretty, labelSelector, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, fieldSelector, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedCustomObject(group, version, namespace, plural, pretty, labelSelector, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, fieldSelector, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedCustomObjectWithHttpInfo(rsp)));\n }));\n }\n /**\n * Delete collection of namespace scoped custom objects\n * @param group The custom resource\\'s group name\n * @param version The custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural The custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param [pretty] If \\'true\\', then the output is pretty printed.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [body]\n */\n deleteCollectionNamespacedCustomObject(group, version, namespace, plural, pretty, labelSelector, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, fieldSelector, body, _options) {\n return this.deleteCollectionNamespacedCustomObjectWithHttpInfo(group, version, namespace, plural, pretty, labelSelector, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, fieldSelector, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * Deletes the specified namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [body]\n */\n deleteNamespacedCustomObjectWithHttpInfo(group, version, namespace, plural, name, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedCustomObject(group, version, namespace, plural, name, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedCustomObjectWithHttpInfo(rsp)));\n }));\n }\n /**\n * Deletes the specified namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [body]\n */\n deleteNamespacedCustomObject(group, version, namespace, plural, name, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, body, _options) {\n return this.deleteNamespacedCustomObjectWithHttpInfo(group, version, namespace, plural, name, gracePeriodSeconds, orphanDependents, propagationPolicy, dryRun, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n * @param group The custom resource\\'s group name\n * @param version The custom resource\\'s version\n */\n getAPIResourcesWithHttpInfo(group, version, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(group, version, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n * @param group The custom resource\\'s group name\n * @param version The custom resource\\'s version\n */\n getAPIResources(group, version, _options) {\n return this.getAPIResourcesWithHttpInfo(group, version, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * Returns a cluster scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom object\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n */\n getClusterCustomObjectWithHttpInfo(group, version, plural, name, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getClusterCustomObject(group, version, plural, name, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getClusterCustomObjectWithHttpInfo(rsp)));\n }));\n }\n /**\n * Returns a cluster scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom object\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n */\n getClusterCustomObject(group, version, plural, name, _options) {\n return this.getClusterCustomObjectWithHttpInfo(group, version, plural, name, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read scale of the specified custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n */\n getClusterCustomObjectScaleWithHttpInfo(group, version, plural, name, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getClusterCustomObjectScale(group, version, plural, name, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getClusterCustomObjectScaleWithHttpInfo(rsp)));\n }));\n }\n /**\n * read scale of the specified custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n */\n getClusterCustomObjectScale(group, version, plural, name, _options) {\n return this.getClusterCustomObjectScaleWithHttpInfo(group, version, plural, name, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified cluster scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n */\n getClusterCustomObjectStatusWithHttpInfo(group, version, plural, name, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getClusterCustomObjectStatus(group, version, plural, name, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getClusterCustomObjectStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified cluster scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n */\n getClusterCustomObjectStatus(group, version, plural, name, _options) {\n return this.getClusterCustomObjectStatusWithHttpInfo(group, version, plural, name, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * Returns a namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n */\n getNamespacedCustomObjectWithHttpInfo(group, version, namespace, plural, name, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getNamespacedCustomObject(group, version, namespace, plural, name, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getNamespacedCustomObjectWithHttpInfo(rsp)));\n }));\n }\n /**\n * Returns a namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n */\n getNamespacedCustomObject(group, version, namespace, plural, name, _options) {\n return this.getNamespacedCustomObjectWithHttpInfo(group, version, namespace, plural, name, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read scale of the specified namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n */\n getNamespacedCustomObjectScaleWithHttpInfo(group, version, namespace, plural, name, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getNamespacedCustomObjectScale(group, version, namespace, plural, name, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getNamespacedCustomObjectScaleWithHttpInfo(rsp)));\n }));\n }\n /**\n * read scale of the specified namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n */\n getNamespacedCustomObjectScale(group, version, namespace, plural, name, _options) {\n return this.getNamespacedCustomObjectScaleWithHttpInfo(group, version, namespace, plural, name, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n */\n getNamespacedCustomObjectStatusWithHttpInfo(group, version, namespace, plural, name, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getNamespacedCustomObjectStatus(group, version, namespace, plural, name, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getNamespacedCustomObjectStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n */\n getNamespacedCustomObjectStatus(group, version, namespace, plural, name, _options) {\n return this.getNamespacedCustomObjectStatusWithHttpInfo(group, version, namespace, plural, name, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch cluster scoped custom objects\n * @param group The custom resource\\'s group name\n * @param version The custom resource\\'s version\n * @param plural The custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param [pretty] If \\'true\\', then the output is pretty printed.\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it\\'s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications.\n */\n listClusterCustomObjectWithHttpInfo(group, version, plural, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listClusterCustomObject(group, version, plural, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listClusterCustomObjectWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch cluster scoped custom objects\n * @param group The custom resource\\'s group name\n * @param version The custom resource\\'s version\n * @param plural The custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param [pretty] If \\'true\\', then the output is pretty printed.\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it\\'s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications.\n */\n listClusterCustomObject(group, version, plural, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, _options) {\n return this.listClusterCustomObjectWithHttpInfo(group, version, plural, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch namespace scoped custom objects\n * @param group The custom resource\\'s group name\n * @param version The custom resource\\'s version\n * @param plural The custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param [pretty] If \\'true\\', then the output is pretty printed.\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it\\'s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications.\n */\n listCustomObjectForAllNamespacesWithHttpInfo(group, version, plural, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listCustomObjectForAllNamespaces(group, version, plural, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listCustomObjectForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch namespace scoped custom objects\n * @param group The custom resource\\'s group name\n * @param version The custom resource\\'s version\n * @param plural The custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param [pretty] If \\'true\\', then the output is pretty printed.\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it\\'s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications.\n */\n listCustomObjectForAllNamespaces(group, version, plural, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, _options) {\n return this.listCustomObjectForAllNamespacesWithHttpInfo(group, version, plural, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch namespace scoped custom objects\n * @param group The custom resource\\'s group name\n * @param version The custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural The custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param [pretty] If \\'true\\', then the output is pretty printed.\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it\\'s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications.\n */\n listNamespacedCustomObjectWithHttpInfo(group, version, namespace, plural, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedCustomObject(group, version, namespace, plural, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedCustomObjectWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch namespace scoped custom objects\n * @param group The custom resource\\'s group name\n * @param version The custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural The custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param [pretty] If \\'true\\', then the output is pretty printed.\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it\\'s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications.\n */\n listNamespacedCustomObject(group, version, namespace, plural, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, _options) {\n return this.listNamespacedCustomObjectWithHttpInfo(group, version, namespace, plural, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * patch the specified cluster scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom object\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body The JSON schema of the Resource to patch.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchClusterCustomObjectWithHttpInfo(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchClusterCustomObject(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchClusterCustomObjectWithHttpInfo(rsp)));\n }));\n }\n /**\n * patch the specified cluster scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom object\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body The JSON schema of the Resource to patch.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchClusterCustomObject(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchClusterCustomObjectWithHttpInfo(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update scale of the specified cluster scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchClusterCustomObjectScaleWithHttpInfo(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchClusterCustomObjectScale(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchClusterCustomObjectScaleWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update scale of the specified cluster scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchClusterCustomObjectScale(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchClusterCustomObjectScaleWithHttpInfo(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified cluster scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchClusterCustomObjectStatusWithHttpInfo(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchClusterCustomObjectStatus(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchClusterCustomObjectStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified cluster scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchClusterCustomObjectStatus(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchClusterCustomObjectStatusWithHttpInfo(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * patch the specified namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body The JSON schema of the Resource to patch.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedCustomObjectWithHttpInfo(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedCustomObject(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedCustomObjectWithHttpInfo(rsp)));\n }));\n }\n /**\n * patch the specified namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body The JSON schema of the Resource to patch.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedCustomObject(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedCustomObjectWithHttpInfo(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update scale of the specified namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedCustomObjectScaleWithHttpInfo(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedCustomObjectScale(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedCustomObjectScaleWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update scale of the specified namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedCustomObjectScale(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedCustomObjectScaleWithHttpInfo(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedCustomObjectStatusWithHttpInfo(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedCustomObjectStatus(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedCustomObjectStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedCustomObjectStatus(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedCustomObjectStatusWithHttpInfo(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified cluster scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom object\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body The JSON schema of the Resource to replace.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n */\n replaceClusterCustomObjectWithHttpInfo(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceClusterCustomObject(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceClusterCustomObjectWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified cluster scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom object\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body The JSON schema of the Resource to replace.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n */\n replaceClusterCustomObject(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceClusterCustomObjectWithHttpInfo(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace scale of the specified cluster scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n */\n replaceClusterCustomObjectScaleWithHttpInfo(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceClusterCustomObjectScale(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceClusterCustomObjectScaleWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace scale of the specified cluster scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n */\n replaceClusterCustomObjectScale(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceClusterCustomObjectScaleWithHttpInfo(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the cluster scoped specified custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n */\n replaceClusterCustomObjectStatusWithHttpInfo(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceClusterCustomObjectStatus(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceClusterCustomObjectStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the cluster scoped specified custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n */\n replaceClusterCustomObjectStatus(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceClusterCustomObjectStatusWithHttpInfo(group, version, plural, name, body, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body The JSON schema of the Resource to replace.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n */\n replaceNamespacedCustomObjectWithHttpInfo(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedCustomObject(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedCustomObjectWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body The JSON schema of the Resource to replace.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n */\n replaceNamespacedCustomObject(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedCustomObjectWithHttpInfo(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace scale of the specified namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n */\n replaceNamespacedCustomObjectScaleWithHttpInfo(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedCustomObjectScale(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedCustomObjectScaleWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace scale of the specified namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n */\n replaceNamespacedCustomObjectScale(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedCustomObjectScaleWithHttpInfo(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n */\n replaceNamespacedCustomObjectStatusWithHttpInfo(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedCustomObjectStatus(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedCustomObjectStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified namespace scoped custom object\n * @param group the custom resource\\'s group\n * @param version the custom resource\\'s version\n * @param namespace The custom resource\\'s namespace\n * @param plural the custom resource\\'s plural name. For TPRs this would be lowercase plural kind.\n * @param name the custom object\\'s name\n * @param body\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. (optional)\n */\n replaceNamespacedCustomObjectStatus(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedCustomObjectStatusWithHttpInfo(group, version, namespace, plural, name, body, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { DiscoveryApiRequestFactory, DiscoveryApiResponseProcessor } from \"../apis/DiscoveryApi.js\";\nexport class ObservableDiscoveryApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new DiscoveryApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new DiscoveryApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { DiscoveryV1ApiRequestFactory, DiscoveryV1ApiResponseProcessor } from \"../apis/DiscoveryV1Api.js\";\nexport class ObservableDiscoveryV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new DiscoveryV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new DiscoveryV1ApiResponseProcessor();\n }\n /**\n * create an EndpointSlice\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedEndpointSliceWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedEndpointSlice(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedEndpointSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * create an EndpointSlice\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedEndpointSlice(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedEndpointSliceWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of EndpointSlice\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedEndpointSliceWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedEndpointSlice(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedEndpointSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of EndpointSlice\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedEndpointSlice(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedEndpointSliceWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete an EndpointSlice\n * @param name name of the EndpointSlice\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedEndpointSliceWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedEndpointSlice(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedEndpointSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete an EndpointSlice\n * @param name name of the EndpointSlice\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedEndpointSlice(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedEndpointSliceWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind EndpointSlice\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listEndpointSliceForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listEndpointSliceForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listEndpointSliceForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind EndpointSlice\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listEndpointSliceForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listEndpointSliceForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind EndpointSlice\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedEndpointSliceWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedEndpointSlice(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedEndpointSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind EndpointSlice\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedEndpointSlice(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedEndpointSliceWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified EndpointSlice\n * @param name name of the EndpointSlice\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedEndpointSliceWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedEndpointSlice(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedEndpointSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified EndpointSlice\n * @param name name of the EndpointSlice\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedEndpointSlice(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedEndpointSliceWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified EndpointSlice\n * @param name name of the EndpointSlice\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedEndpointSliceWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedEndpointSlice(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedEndpointSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified EndpointSlice\n * @param name name of the EndpointSlice\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedEndpointSlice(name, namespace, pretty, _options) {\n return this.readNamespacedEndpointSliceWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified EndpointSlice\n * @param name name of the EndpointSlice\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedEndpointSliceWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedEndpointSlice(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedEndpointSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified EndpointSlice\n * @param name name of the EndpointSlice\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedEndpointSlice(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedEndpointSliceWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { EventsApiRequestFactory, EventsApiResponseProcessor } from \"../apis/EventsApi.js\";\nexport class ObservableEventsApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new EventsApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new EventsApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { EventsV1ApiRequestFactory, EventsV1ApiResponseProcessor } from \"../apis/EventsV1Api.js\";\nexport class ObservableEventsV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new EventsV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new EventsV1ApiResponseProcessor();\n }\n /**\n * create an Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedEventWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedEvent(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedEventWithHttpInfo(rsp)));\n }));\n }\n /**\n * create an Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedEvent(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedEventWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedEventWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedEvent(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedEventWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedEvent(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedEventWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete an Event\n * @param name name of the Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedEventWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedEvent(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedEventWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete an Event\n * @param name name of the Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedEvent(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedEventWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Event\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listEventForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listEventForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listEventForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Event\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listEventForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listEventForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedEventWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedEvent(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedEventWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedEvent(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedEventWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified Event\n * @param name name of the Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedEventWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedEvent(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedEventWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified Event\n * @param name name of the Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedEvent(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedEventWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified Event\n * @param name name of the Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedEventWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedEvent(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedEventWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified Event\n * @param name name of the Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedEvent(name, namespace, pretty, _options) {\n return this.readNamespacedEventWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified Event\n * @param name name of the Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedEventWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedEvent(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedEventWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified Event\n * @param name name of the Event\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedEvent(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedEventWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { FlowcontrolApiserverApiRequestFactory, FlowcontrolApiserverApiResponseProcessor } from \"../apis/FlowcontrolApiserverApi.js\";\nexport class ObservableFlowcontrolApiserverApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new FlowcontrolApiserverApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new FlowcontrolApiserverApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { FlowcontrolApiserverV1ApiRequestFactory, FlowcontrolApiserverV1ApiResponseProcessor } from \"../apis/FlowcontrolApiserverV1Api.js\";\nexport class ObservableFlowcontrolApiserverV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new FlowcontrolApiserverV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new FlowcontrolApiserverV1ApiResponseProcessor();\n }\n /**\n * create a FlowSchema\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createFlowSchemaWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createFlowSchema(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createFlowSchemaWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a FlowSchema\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createFlowSchema(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createFlowSchemaWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a PriorityLevelConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createPriorityLevelConfigurationWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createPriorityLevelConfiguration(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createPriorityLevelConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a PriorityLevelConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createPriorityLevelConfiguration(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createPriorityLevelConfigurationWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of FlowSchema\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionFlowSchemaWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionFlowSchema(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionFlowSchemaWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of FlowSchema\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionFlowSchema(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionFlowSchemaWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of PriorityLevelConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionPriorityLevelConfigurationWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionPriorityLevelConfiguration(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionPriorityLevelConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of PriorityLevelConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionPriorityLevelConfiguration(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionPriorityLevelConfigurationWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a FlowSchema\n * @param name name of the FlowSchema\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteFlowSchemaWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteFlowSchema(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteFlowSchemaWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a FlowSchema\n * @param name name of the FlowSchema\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteFlowSchema(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteFlowSchemaWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a PriorityLevelConfiguration\n * @param name name of the PriorityLevelConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deletePriorityLevelConfigurationWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deletePriorityLevelConfiguration(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deletePriorityLevelConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a PriorityLevelConfiguration\n * @param name name of the PriorityLevelConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deletePriorityLevelConfiguration(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deletePriorityLevelConfigurationWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind FlowSchema\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listFlowSchemaWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listFlowSchema(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listFlowSchemaWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind FlowSchema\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listFlowSchema(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listFlowSchemaWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind PriorityLevelConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listPriorityLevelConfigurationWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listPriorityLevelConfiguration(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listPriorityLevelConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind PriorityLevelConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listPriorityLevelConfiguration(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listPriorityLevelConfigurationWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified FlowSchema\n * @param name name of the FlowSchema\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchFlowSchemaWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchFlowSchema(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchFlowSchemaWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified FlowSchema\n * @param name name of the FlowSchema\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchFlowSchema(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchFlowSchemaWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified FlowSchema\n * @param name name of the FlowSchema\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchFlowSchemaStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchFlowSchemaStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchFlowSchemaStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified FlowSchema\n * @param name name of the FlowSchema\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchFlowSchemaStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchFlowSchemaStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified PriorityLevelConfiguration\n * @param name name of the PriorityLevelConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchPriorityLevelConfigurationWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchPriorityLevelConfiguration(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchPriorityLevelConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified PriorityLevelConfiguration\n * @param name name of the PriorityLevelConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchPriorityLevelConfiguration(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchPriorityLevelConfigurationWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified PriorityLevelConfiguration\n * @param name name of the PriorityLevelConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchPriorityLevelConfigurationStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchPriorityLevelConfigurationStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchPriorityLevelConfigurationStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified PriorityLevelConfiguration\n * @param name name of the PriorityLevelConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchPriorityLevelConfigurationStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchPriorityLevelConfigurationStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified FlowSchema\n * @param name name of the FlowSchema\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readFlowSchemaWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readFlowSchema(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readFlowSchemaWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified FlowSchema\n * @param name name of the FlowSchema\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readFlowSchema(name, pretty, _options) {\n return this.readFlowSchemaWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified FlowSchema\n * @param name name of the FlowSchema\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readFlowSchemaStatusWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readFlowSchemaStatus(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readFlowSchemaStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified FlowSchema\n * @param name name of the FlowSchema\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readFlowSchemaStatus(name, pretty, _options) {\n return this.readFlowSchemaStatusWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified PriorityLevelConfiguration\n * @param name name of the PriorityLevelConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readPriorityLevelConfigurationWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readPriorityLevelConfiguration(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readPriorityLevelConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified PriorityLevelConfiguration\n * @param name name of the PriorityLevelConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readPriorityLevelConfiguration(name, pretty, _options) {\n return this.readPriorityLevelConfigurationWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified PriorityLevelConfiguration\n * @param name name of the PriorityLevelConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readPriorityLevelConfigurationStatusWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readPriorityLevelConfigurationStatus(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readPriorityLevelConfigurationStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified PriorityLevelConfiguration\n * @param name name of the PriorityLevelConfiguration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readPriorityLevelConfigurationStatus(name, pretty, _options) {\n return this.readPriorityLevelConfigurationStatusWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified FlowSchema\n * @param name name of the FlowSchema\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceFlowSchemaWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceFlowSchema(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceFlowSchemaWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified FlowSchema\n * @param name name of the FlowSchema\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceFlowSchema(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceFlowSchemaWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified FlowSchema\n * @param name name of the FlowSchema\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceFlowSchemaStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceFlowSchemaStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceFlowSchemaStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified FlowSchema\n * @param name name of the FlowSchema\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceFlowSchemaStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceFlowSchemaStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified PriorityLevelConfiguration\n * @param name name of the PriorityLevelConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replacePriorityLevelConfigurationWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replacePriorityLevelConfiguration(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replacePriorityLevelConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified PriorityLevelConfiguration\n * @param name name of the PriorityLevelConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replacePriorityLevelConfiguration(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replacePriorityLevelConfigurationWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified PriorityLevelConfiguration\n * @param name name of the PriorityLevelConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replacePriorityLevelConfigurationStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replacePriorityLevelConfigurationStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replacePriorityLevelConfigurationStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified PriorityLevelConfiguration\n * @param name name of the PriorityLevelConfiguration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replacePriorityLevelConfigurationStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replacePriorityLevelConfigurationStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { InternalApiserverApiRequestFactory, InternalApiserverApiResponseProcessor } from \"../apis/InternalApiserverApi.js\";\nexport class ObservableInternalApiserverApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new InternalApiserverApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new InternalApiserverApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { InternalApiserverV1alpha1ApiRequestFactory, InternalApiserverV1alpha1ApiResponseProcessor } from \"../apis/InternalApiserverV1alpha1Api.js\";\nexport class ObservableInternalApiserverV1alpha1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new InternalApiserverV1alpha1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new InternalApiserverV1alpha1ApiResponseProcessor();\n }\n /**\n * create a StorageVersion\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createStorageVersionWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createStorageVersion(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createStorageVersionWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a StorageVersion\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createStorageVersion(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createStorageVersionWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of StorageVersion\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionStorageVersionWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionStorageVersion(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionStorageVersionWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of StorageVersion\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionStorageVersion(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionStorageVersionWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a StorageVersion\n * @param name name of the StorageVersion\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteStorageVersionWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteStorageVersion(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteStorageVersionWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a StorageVersion\n * @param name name of the StorageVersion\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteStorageVersion(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteStorageVersionWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind StorageVersion\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listStorageVersionWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listStorageVersion(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listStorageVersionWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind StorageVersion\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listStorageVersion(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listStorageVersionWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified StorageVersion\n * @param name name of the StorageVersion\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchStorageVersionWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchStorageVersion(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchStorageVersionWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified StorageVersion\n * @param name name of the StorageVersion\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchStorageVersion(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchStorageVersionWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified StorageVersion\n * @param name name of the StorageVersion\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchStorageVersionStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchStorageVersionStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchStorageVersionStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified StorageVersion\n * @param name name of the StorageVersion\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchStorageVersionStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchStorageVersionStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified StorageVersion\n * @param name name of the StorageVersion\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readStorageVersionWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readStorageVersion(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readStorageVersionWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified StorageVersion\n * @param name name of the StorageVersion\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readStorageVersion(name, pretty, _options) {\n return this.readStorageVersionWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified StorageVersion\n * @param name name of the StorageVersion\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readStorageVersionStatusWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readStorageVersionStatus(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readStorageVersionStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified StorageVersion\n * @param name name of the StorageVersion\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readStorageVersionStatus(name, pretty, _options) {\n return this.readStorageVersionStatusWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified StorageVersion\n * @param name name of the StorageVersion\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceStorageVersionWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceStorageVersion(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceStorageVersionWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified StorageVersion\n * @param name name of the StorageVersion\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceStorageVersion(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceStorageVersionWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified StorageVersion\n * @param name name of the StorageVersion\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceStorageVersionStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceStorageVersionStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceStorageVersionStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified StorageVersion\n * @param name name of the StorageVersion\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceStorageVersionStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceStorageVersionStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { LogsApiRequestFactory, LogsApiResponseProcessor } from \"../apis/LogsApi.js\";\nexport class ObservableLogsApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new LogsApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new LogsApiResponseProcessor();\n }\n /**\n * @param logpath path to the log\n */\n logFileHandlerWithHttpInfo(logpath, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.logFileHandler(logpath, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.logFileHandlerWithHttpInfo(rsp)));\n }));\n }\n /**\n * @param logpath path to the log\n */\n logFileHandler(logpath, _options) {\n return this.logFileHandlerWithHttpInfo(logpath, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n */\n logFileListHandlerWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.logFileListHandler(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.logFileListHandlerWithHttpInfo(rsp)));\n }));\n }\n /**\n */\n logFileListHandler(_options) {\n return this.logFileListHandlerWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { NetworkingApiRequestFactory, NetworkingApiResponseProcessor } from \"../apis/NetworkingApi.js\";\nexport class ObservableNetworkingApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new NetworkingApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new NetworkingApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { NetworkingV1ApiRequestFactory, NetworkingV1ApiResponseProcessor } from \"../apis/NetworkingV1Api.js\";\nexport class ObservableNetworkingV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new NetworkingV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new NetworkingV1ApiResponseProcessor();\n }\n /**\n * create an IPAddress\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createIPAddressWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createIPAddress(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createIPAddressWithHttpInfo(rsp)));\n }));\n }\n /**\n * create an IPAddress\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createIPAddress(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createIPAddressWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create an IngressClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createIngressClassWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createIngressClass(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createIngressClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * create an IngressClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createIngressClass(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createIngressClassWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create an Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedIngressWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedIngress(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedIngressWithHttpInfo(rsp)));\n }));\n }\n /**\n * create an Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedIngress(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedIngressWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a NetworkPolicy\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedNetworkPolicyWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedNetworkPolicy(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedNetworkPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a NetworkPolicy\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedNetworkPolicy(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedNetworkPolicyWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createServiceCIDRWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createServiceCIDR(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createServiceCIDRWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createServiceCIDR(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createServiceCIDRWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of IPAddress\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionIPAddressWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionIPAddress(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionIPAddressWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of IPAddress\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionIPAddress(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionIPAddressWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of IngressClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionIngressClassWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionIngressClass(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionIngressClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of IngressClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionIngressClass(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionIngressClassWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedIngressWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedIngress(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedIngressWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedIngress(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedIngressWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of NetworkPolicy\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedNetworkPolicyWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedNetworkPolicy(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedNetworkPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of NetworkPolicy\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedNetworkPolicy(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedNetworkPolicyWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionServiceCIDRWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionServiceCIDR(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionServiceCIDRWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionServiceCIDR(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionServiceCIDRWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete an IPAddress\n * @param name name of the IPAddress\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteIPAddressWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteIPAddress(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteIPAddressWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete an IPAddress\n * @param name name of the IPAddress\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteIPAddress(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteIPAddressWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete an IngressClass\n * @param name name of the IngressClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteIngressClassWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteIngressClass(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteIngressClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete an IngressClass\n * @param name name of the IngressClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteIngressClass(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteIngressClassWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete an Ingress\n * @param name name of the Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedIngressWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedIngress(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedIngressWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete an Ingress\n * @param name name of the Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedIngress(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedIngressWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a NetworkPolicy\n * @param name name of the NetworkPolicy\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedNetworkPolicyWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedNetworkPolicy(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedNetworkPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a NetworkPolicy\n * @param name name of the NetworkPolicy\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedNetworkPolicy(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedNetworkPolicyWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteServiceCIDRWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteServiceCIDR(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteServiceCIDRWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteServiceCIDR(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteServiceCIDRWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind IPAddress\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listIPAddressWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listIPAddress(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listIPAddressWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind IPAddress\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listIPAddress(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listIPAddressWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind IngressClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listIngressClassWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listIngressClass(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listIngressClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind IngressClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listIngressClass(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listIngressClassWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Ingress\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listIngressForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listIngressForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listIngressForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Ingress\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listIngressForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listIngressForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedIngressWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedIngress(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedIngressWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedIngress(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedIngressWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind NetworkPolicy\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedNetworkPolicyWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedNetworkPolicy(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedNetworkPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind NetworkPolicy\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedNetworkPolicy(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedNetworkPolicyWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind NetworkPolicy\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNetworkPolicyForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNetworkPolicyForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNetworkPolicyForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind NetworkPolicy\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNetworkPolicyForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNetworkPolicyForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listServiceCIDRWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listServiceCIDR(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listServiceCIDRWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listServiceCIDR(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listServiceCIDRWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified IPAddress\n * @param name name of the IPAddress\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchIPAddressWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchIPAddress(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchIPAddressWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified IPAddress\n * @param name name of the IPAddress\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchIPAddress(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchIPAddressWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified IngressClass\n * @param name name of the IngressClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchIngressClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchIngressClass(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchIngressClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified IngressClass\n * @param name name of the IngressClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchIngressClass(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchIngressClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified Ingress\n * @param name name of the Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedIngressWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedIngress(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedIngressWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified Ingress\n * @param name name of the Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedIngress(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedIngressWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified Ingress\n * @param name name of the Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedIngressStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedIngressStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedIngressStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified Ingress\n * @param name name of the Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedIngressStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedIngressStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified NetworkPolicy\n * @param name name of the NetworkPolicy\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedNetworkPolicyWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedNetworkPolicy(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedNetworkPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified NetworkPolicy\n * @param name name of the NetworkPolicy\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedNetworkPolicy(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedNetworkPolicyWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchServiceCIDRWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchServiceCIDR(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchServiceCIDRWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchServiceCIDR(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchServiceCIDRWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchServiceCIDRStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchServiceCIDRStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchServiceCIDRStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchServiceCIDRStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchServiceCIDRStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified IPAddress\n * @param name name of the IPAddress\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readIPAddressWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readIPAddress(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readIPAddressWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified IPAddress\n * @param name name of the IPAddress\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readIPAddress(name, pretty, _options) {\n return this.readIPAddressWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified IngressClass\n * @param name name of the IngressClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readIngressClassWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readIngressClass(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readIngressClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified IngressClass\n * @param name name of the IngressClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readIngressClass(name, pretty, _options) {\n return this.readIngressClassWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified Ingress\n * @param name name of the Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedIngressWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedIngress(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedIngressWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified Ingress\n * @param name name of the Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedIngress(name, namespace, pretty, _options) {\n return this.readNamespacedIngressWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified Ingress\n * @param name name of the Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedIngressStatusWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedIngressStatus(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedIngressStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified Ingress\n * @param name name of the Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedIngressStatus(name, namespace, pretty, _options) {\n return this.readNamespacedIngressStatusWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified NetworkPolicy\n * @param name name of the NetworkPolicy\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedNetworkPolicyWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedNetworkPolicy(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedNetworkPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified NetworkPolicy\n * @param name name of the NetworkPolicy\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedNetworkPolicy(name, namespace, pretty, _options) {\n return this.readNamespacedNetworkPolicyWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readServiceCIDRWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readServiceCIDR(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readServiceCIDRWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readServiceCIDR(name, pretty, _options) {\n return this.readServiceCIDRWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readServiceCIDRStatusWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readServiceCIDRStatus(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readServiceCIDRStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readServiceCIDRStatus(name, pretty, _options) {\n return this.readServiceCIDRStatusWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified IPAddress\n * @param name name of the IPAddress\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceIPAddressWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceIPAddress(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceIPAddressWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified IPAddress\n * @param name name of the IPAddress\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceIPAddress(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceIPAddressWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified IngressClass\n * @param name name of the IngressClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceIngressClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceIngressClass(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceIngressClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified IngressClass\n * @param name name of the IngressClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceIngressClass(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceIngressClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified Ingress\n * @param name name of the Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedIngressWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedIngress(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedIngressWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified Ingress\n * @param name name of the Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedIngress(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedIngressWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified Ingress\n * @param name name of the Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedIngressStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedIngressStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedIngressStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified Ingress\n * @param name name of the Ingress\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedIngressStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedIngressStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified NetworkPolicy\n * @param name name of the NetworkPolicy\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedNetworkPolicyWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedNetworkPolicy(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedNetworkPolicyWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified NetworkPolicy\n * @param name name of the NetworkPolicy\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedNetworkPolicy(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedNetworkPolicyWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceServiceCIDRWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceServiceCIDR(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceServiceCIDRWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceServiceCIDR(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceServiceCIDRWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceServiceCIDRStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceServiceCIDRStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceServiceCIDRStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceServiceCIDRStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceServiceCIDRStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { NetworkingV1beta1ApiRequestFactory, NetworkingV1beta1ApiResponseProcessor } from \"../apis/NetworkingV1beta1Api.js\";\nexport class ObservableNetworkingV1beta1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new NetworkingV1beta1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new NetworkingV1beta1ApiResponseProcessor();\n }\n /**\n * create an IPAddress\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createIPAddressWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createIPAddress(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createIPAddressWithHttpInfo(rsp)));\n }));\n }\n /**\n * create an IPAddress\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createIPAddress(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createIPAddressWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createServiceCIDRWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createServiceCIDR(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createServiceCIDRWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createServiceCIDR(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createServiceCIDRWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of IPAddress\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionIPAddressWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionIPAddress(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionIPAddressWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of IPAddress\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionIPAddress(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionIPAddressWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionServiceCIDRWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionServiceCIDR(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionServiceCIDRWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionServiceCIDR(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionServiceCIDRWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete an IPAddress\n * @param name name of the IPAddress\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteIPAddressWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteIPAddress(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteIPAddressWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete an IPAddress\n * @param name name of the IPAddress\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteIPAddress(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteIPAddressWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteServiceCIDRWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteServiceCIDR(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteServiceCIDRWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteServiceCIDR(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteServiceCIDRWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind IPAddress\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listIPAddressWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listIPAddress(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listIPAddressWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind IPAddress\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listIPAddress(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listIPAddressWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listServiceCIDRWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listServiceCIDR(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listServiceCIDRWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listServiceCIDR(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listServiceCIDRWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified IPAddress\n * @param name name of the IPAddress\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchIPAddressWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchIPAddress(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchIPAddressWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified IPAddress\n * @param name name of the IPAddress\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchIPAddress(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchIPAddressWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchServiceCIDRWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchServiceCIDR(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchServiceCIDRWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchServiceCIDR(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchServiceCIDRWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchServiceCIDRStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchServiceCIDRStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchServiceCIDRStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchServiceCIDRStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchServiceCIDRStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified IPAddress\n * @param name name of the IPAddress\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readIPAddressWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readIPAddress(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readIPAddressWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified IPAddress\n * @param name name of the IPAddress\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readIPAddress(name, pretty, _options) {\n return this.readIPAddressWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readServiceCIDRWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readServiceCIDR(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readServiceCIDRWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readServiceCIDR(name, pretty, _options) {\n return this.readServiceCIDRWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readServiceCIDRStatusWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readServiceCIDRStatus(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readServiceCIDRStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readServiceCIDRStatus(name, pretty, _options) {\n return this.readServiceCIDRStatusWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified IPAddress\n * @param name name of the IPAddress\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceIPAddressWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceIPAddress(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceIPAddressWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified IPAddress\n * @param name name of the IPAddress\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceIPAddress(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceIPAddressWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceServiceCIDRWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceServiceCIDR(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceServiceCIDRWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceServiceCIDR(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceServiceCIDRWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceServiceCIDRStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceServiceCIDRStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceServiceCIDRStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified ServiceCIDR\n * @param name name of the ServiceCIDR\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceServiceCIDRStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceServiceCIDRStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { NodeApiRequestFactory, NodeApiResponseProcessor } from \"../apis/NodeApi.js\";\nexport class ObservableNodeApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new NodeApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new NodeApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { NodeV1ApiRequestFactory, NodeV1ApiResponseProcessor } from \"../apis/NodeV1Api.js\";\nexport class ObservableNodeV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new NodeV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new NodeV1ApiResponseProcessor();\n }\n /**\n * create a RuntimeClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createRuntimeClassWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createRuntimeClass(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createRuntimeClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a RuntimeClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createRuntimeClass(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createRuntimeClassWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of RuntimeClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionRuntimeClassWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionRuntimeClass(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionRuntimeClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of RuntimeClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionRuntimeClass(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionRuntimeClassWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a RuntimeClass\n * @param name name of the RuntimeClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteRuntimeClassWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteRuntimeClass(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteRuntimeClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a RuntimeClass\n * @param name name of the RuntimeClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteRuntimeClass(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteRuntimeClassWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind RuntimeClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listRuntimeClassWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listRuntimeClass(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listRuntimeClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind RuntimeClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listRuntimeClass(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listRuntimeClassWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified RuntimeClass\n * @param name name of the RuntimeClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchRuntimeClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchRuntimeClass(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchRuntimeClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified RuntimeClass\n * @param name name of the RuntimeClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchRuntimeClass(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchRuntimeClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified RuntimeClass\n * @param name name of the RuntimeClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readRuntimeClassWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readRuntimeClass(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readRuntimeClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified RuntimeClass\n * @param name name of the RuntimeClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readRuntimeClass(name, pretty, _options) {\n return this.readRuntimeClassWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified RuntimeClass\n * @param name name of the RuntimeClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceRuntimeClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceRuntimeClass(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceRuntimeClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified RuntimeClass\n * @param name name of the RuntimeClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceRuntimeClass(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceRuntimeClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { OpenidApiRequestFactory, OpenidApiResponseProcessor } from \"../apis/OpenidApi.js\";\nexport class ObservableOpenidApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new OpenidApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new OpenidApiResponseProcessor();\n }\n /**\n * get service account issuer OpenID JSON Web Key Set (contains public token verification keys)\n */\n getServiceAccountIssuerOpenIDKeysetWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getServiceAccountIssuerOpenIDKeyset(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getServiceAccountIssuerOpenIDKeysetWithHttpInfo(rsp)));\n }));\n }\n /**\n * get service account issuer OpenID JSON Web Key Set (contains public token verification keys)\n */\n getServiceAccountIssuerOpenIDKeyset(_options) {\n return this.getServiceAccountIssuerOpenIDKeysetWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { PolicyApiRequestFactory, PolicyApiResponseProcessor } from \"../apis/PolicyApi.js\";\nexport class ObservablePolicyApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new PolicyApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new PolicyApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { PolicyV1ApiRequestFactory, PolicyV1ApiResponseProcessor } from \"../apis/PolicyV1Api.js\";\nexport class ObservablePolicyV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new PolicyV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new PolicyV1ApiResponseProcessor();\n }\n /**\n * create a PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedPodDisruptionBudgetWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedPodDisruptionBudget(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedPodDisruptionBudgetWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedPodDisruptionBudget(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedPodDisruptionBudgetWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedPodDisruptionBudgetWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedPodDisruptionBudget(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedPodDisruptionBudgetWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedPodDisruptionBudget(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedPodDisruptionBudgetWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a PodDisruptionBudget\n * @param name name of the PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedPodDisruptionBudgetWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedPodDisruptionBudget(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedPodDisruptionBudgetWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a PodDisruptionBudget\n * @param name name of the PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedPodDisruptionBudget(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedPodDisruptionBudgetWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedPodDisruptionBudgetWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedPodDisruptionBudget(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedPodDisruptionBudgetWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedPodDisruptionBudget(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedPodDisruptionBudgetWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind PodDisruptionBudget\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listPodDisruptionBudgetForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listPodDisruptionBudgetForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listPodDisruptionBudgetForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind PodDisruptionBudget\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listPodDisruptionBudgetForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listPodDisruptionBudgetForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified PodDisruptionBudget\n * @param name name of the PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedPodDisruptionBudgetWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedPodDisruptionBudget(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedPodDisruptionBudgetWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified PodDisruptionBudget\n * @param name name of the PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedPodDisruptionBudget(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedPodDisruptionBudgetWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified PodDisruptionBudget\n * @param name name of the PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedPodDisruptionBudgetStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedPodDisruptionBudgetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedPodDisruptionBudgetStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified PodDisruptionBudget\n * @param name name of the PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedPodDisruptionBudgetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedPodDisruptionBudgetStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified PodDisruptionBudget\n * @param name name of the PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedPodDisruptionBudgetWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedPodDisruptionBudget(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedPodDisruptionBudgetWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified PodDisruptionBudget\n * @param name name of the PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedPodDisruptionBudget(name, namespace, pretty, _options) {\n return this.readNamespacedPodDisruptionBudgetWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified PodDisruptionBudget\n * @param name name of the PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedPodDisruptionBudgetStatusWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedPodDisruptionBudgetStatus(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedPodDisruptionBudgetStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified PodDisruptionBudget\n * @param name name of the PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedPodDisruptionBudgetStatus(name, namespace, pretty, _options) {\n return this.readNamespacedPodDisruptionBudgetStatusWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified PodDisruptionBudget\n * @param name name of the PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedPodDisruptionBudgetWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedPodDisruptionBudget(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedPodDisruptionBudgetWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified PodDisruptionBudget\n * @param name name of the PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedPodDisruptionBudget(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedPodDisruptionBudgetWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified PodDisruptionBudget\n * @param name name of the PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedPodDisruptionBudgetStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedPodDisruptionBudgetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedPodDisruptionBudgetStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified PodDisruptionBudget\n * @param name name of the PodDisruptionBudget\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedPodDisruptionBudgetStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedPodDisruptionBudgetStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { RbacAuthorizationApiRequestFactory, RbacAuthorizationApiResponseProcessor } from \"../apis/RbacAuthorizationApi.js\";\nexport class ObservableRbacAuthorizationApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new RbacAuthorizationApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new RbacAuthorizationApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { RbacAuthorizationV1ApiRequestFactory, RbacAuthorizationV1ApiResponseProcessor } from \"../apis/RbacAuthorizationV1Api.js\";\nexport class ObservableRbacAuthorizationV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new RbacAuthorizationV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new RbacAuthorizationV1ApiResponseProcessor();\n }\n /**\n * create a ClusterRole\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createClusterRoleWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createClusterRole(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createClusterRoleWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ClusterRole\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createClusterRole(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createClusterRoleWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ClusterRoleBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createClusterRoleBindingWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createClusterRoleBinding(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createClusterRoleBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ClusterRoleBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createClusterRoleBinding(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createClusterRoleBindingWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a Role\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedRoleWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedRole(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedRoleWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a Role\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedRole(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedRoleWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a RoleBinding\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedRoleBindingWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedRoleBinding(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedRoleBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a RoleBinding\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedRoleBinding(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedRoleBindingWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ClusterRole\n * @param name name of the ClusterRole\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteClusterRoleWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteClusterRole(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteClusterRoleWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ClusterRole\n * @param name name of the ClusterRole\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteClusterRole(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteClusterRoleWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ClusterRoleBinding\n * @param name name of the ClusterRoleBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteClusterRoleBindingWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteClusterRoleBinding(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteClusterRoleBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ClusterRoleBinding\n * @param name name of the ClusterRoleBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteClusterRoleBinding(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteClusterRoleBindingWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ClusterRole\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionClusterRoleWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionClusterRole(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionClusterRoleWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ClusterRole\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionClusterRole(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionClusterRoleWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ClusterRoleBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionClusterRoleBindingWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionClusterRoleBinding(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionClusterRoleBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ClusterRoleBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionClusterRoleBinding(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionClusterRoleBindingWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of Role\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedRoleWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedRole(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedRoleWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of Role\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedRole(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedRoleWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of RoleBinding\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedRoleBindingWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedRoleBinding(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedRoleBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of RoleBinding\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedRoleBinding(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedRoleBindingWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a Role\n * @param name name of the Role\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedRoleWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedRole(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedRoleWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a Role\n * @param name name of the Role\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedRole(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedRoleWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a RoleBinding\n * @param name name of the RoleBinding\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedRoleBindingWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedRoleBinding(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedRoleBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a RoleBinding\n * @param name name of the RoleBinding\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedRoleBinding(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedRoleBindingWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ClusterRole\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listClusterRoleWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listClusterRole(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listClusterRoleWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ClusterRole\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listClusterRole(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listClusterRoleWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ClusterRoleBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listClusterRoleBindingWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listClusterRoleBinding(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listClusterRoleBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ClusterRoleBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listClusterRoleBinding(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listClusterRoleBindingWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Role\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedRoleWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedRole(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedRoleWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Role\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedRole(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedRoleWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind RoleBinding\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedRoleBindingWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedRoleBinding(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedRoleBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind RoleBinding\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedRoleBinding(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedRoleBindingWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind RoleBinding\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listRoleBindingForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listRoleBindingForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listRoleBindingForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind RoleBinding\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listRoleBindingForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listRoleBindingForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind Role\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listRoleForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listRoleForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listRoleForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind Role\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listRoleForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listRoleForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ClusterRole\n * @param name name of the ClusterRole\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchClusterRoleWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchClusterRole(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchClusterRoleWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ClusterRole\n * @param name name of the ClusterRole\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchClusterRole(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchClusterRoleWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ClusterRoleBinding\n * @param name name of the ClusterRoleBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchClusterRoleBindingWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchClusterRoleBinding(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchClusterRoleBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ClusterRoleBinding\n * @param name name of the ClusterRoleBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchClusterRoleBinding(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchClusterRoleBindingWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified Role\n * @param name name of the Role\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedRoleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedRole(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedRoleWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified Role\n * @param name name of the Role\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedRole(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedRoleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified RoleBinding\n * @param name name of the RoleBinding\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedRoleBindingWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedRoleBinding(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedRoleBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified RoleBinding\n * @param name name of the RoleBinding\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedRoleBinding(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedRoleBindingWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ClusterRole\n * @param name name of the ClusterRole\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readClusterRoleWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readClusterRole(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readClusterRoleWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ClusterRole\n * @param name name of the ClusterRole\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readClusterRole(name, pretty, _options) {\n return this.readClusterRoleWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ClusterRoleBinding\n * @param name name of the ClusterRoleBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readClusterRoleBindingWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readClusterRoleBinding(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readClusterRoleBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ClusterRoleBinding\n * @param name name of the ClusterRoleBinding\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readClusterRoleBinding(name, pretty, _options) {\n return this.readClusterRoleBindingWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified Role\n * @param name name of the Role\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedRoleWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedRole(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedRoleWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified Role\n * @param name name of the Role\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedRole(name, namespace, pretty, _options) {\n return this.readNamespacedRoleWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified RoleBinding\n * @param name name of the RoleBinding\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedRoleBindingWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedRoleBinding(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedRoleBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified RoleBinding\n * @param name name of the RoleBinding\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedRoleBinding(name, namespace, pretty, _options) {\n return this.readNamespacedRoleBindingWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ClusterRole\n * @param name name of the ClusterRole\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceClusterRoleWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceClusterRole(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceClusterRoleWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ClusterRole\n * @param name name of the ClusterRole\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceClusterRole(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceClusterRoleWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ClusterRoleBinding\n * @param name name of the ClusterRoleBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceClusterRoleBindingWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceClusterRoleBinding(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceClusterRoleBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ClusterRoleBinding\n * @param name name of the ClusterRoleBinding\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceClusterRoleBinding(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceClusterRoleBindingWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified Role\n * @param name name of the Role\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedRoleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedRole(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedRoleWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified Role\n * @param name name of the Role\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedRole(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedRoleWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified RoleBinding\n * @param name name of the RoleBinding\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedRoleBindingWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedRoleBinding(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedRoleBindingWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified RoleBinding\n * @param name name of the RoleBinding\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedRoleBinding(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedRoleBindingWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { ResourceApiRequestFactory, ResourceApiResponseProcessor } from \"../apis/ResourceApi.js\";\nexport class ObservableResourceApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new ResourceApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new ResourceApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { ResourceV1alpha3ApiRequestFactory, ResourceV1alpha3ApiResponseProcessor } from \"../apis/ResourceV1alpha3Api.js\";\nexport class ObservableResourceV1alpha3Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new ResourceV1alpha3ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new ResourceV1alpha3ApiResponseProcessor();\n }\n /**\n * create a DeviceClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createDeviceClassWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createDeviceClass(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a DeviceClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createDeviceClass(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createDeviceClassWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a DeviceTaintRule\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createDeviceTaintRuleWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createDeviceTaintRule(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createDeviceTaintRuleWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a DeviceTaintRule\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createDeviceTaintRule(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createDeviceTaintRuleWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedResourceClaimWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedResourceClaim(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedResourceClaim(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedResourceClaimWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedResourceClaimTemplateWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedResourceClaimTemplate(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedResourceClaimTemplate(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedResourceClaimTemplateWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ResourceSlice\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createResourceSliceWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createResourceSlice(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ResourceSlice\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createResourceSlice(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createResourceSliceWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionDeviceClassWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionDeviceClass(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionDeviceClass(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionDeviceClassWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of DeviceTaintRule\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionDeviceTaintRuleWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionDeviceTaintRule(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionDeviceTaintRuleWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of DeviceTaintRule\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionDeviceTaintRule(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionDeviceTaintRuleWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedResourceClaimWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedResourceClaim(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedResourceClaim(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedResourceClaimWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedResourceClaimTemplateWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedResourceClaimTemplate(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedResourceClaimTemplate(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedResourceClaimTemplateWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionResourceSliceWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionResourceSlice(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionResourceSlice(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionResourceSliceWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a DeviceClass\n * @param name name of the DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteDeviceClassWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteDeviceClass(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a DeviceClass\n * @param name name of the DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteDeviceClass(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteDeviceClassWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a DeviceTaintRule\n * @param name name of the DeviceTaintRule\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteDeviceTaintRuleWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteDeviceTaintRule(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteDeviceTaintRuleWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a DeviceTaintRule\n * @param name name of the DeviceTaintRule\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteDeviceTaintRule(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteDeviceTaintRuleWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedResourceClaimWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedResourceClaim(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedResourceClaim(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedResourceClaimWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedResourceClaimTemplate(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedResourceClaimTemplate(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ResourceSlice\n * @param name name of the ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteResourceSliceWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteResourceSlice(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ResourceSlice\n * @param name name of the ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteResourceSlice(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteResourceSliceWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listDeviceClassWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listDeviceClass(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listDeviceClass(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listDeviceClassWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind DeviceTaintRule\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listDeviceTaintRuleWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listDeviceTaintRule(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listDeviceTaintRuleWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind DeviceTaintRule\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listDeviceTaintRule(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listDeviceTaintRuleWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedResourceClaimWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedResourceClaim(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedResourceClaim(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedResourceClaimWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedResourceClaimTemplateWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedResourceClaimTemplate(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedResourceClaimTemplate(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedResourceClaimTemplateWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceClaimForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listResourceClaimForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listResourceClaimForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceClaimForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listResourceClaimForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceClaimTemplateForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listResourceClaimTemplateForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listResourceClaimTemplateForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceClaimTemplateForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listResourceClaimTemplateForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceSliceWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listResourceSlice(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceSlice(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listResourceSliceWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified DeviceClass\n * @param name name of the DeviceClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchDeviceClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchDeviceClass(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified DeviceClass\n * @param name name of the DeviceClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchDeviceClass(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchDeviceClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified DeviceTaintRule\n * @param name name of the DeviceTaintRule\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchDeviceTaintRuleWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchDeviceTaintRule(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchDeviceTaintRuleWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified DeviceTaintRule\n * @param name name of the DeviceTaintRule\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchDeviceTaintRule(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchDeviceTaintRuleWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceClaimWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedResourceClaim(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceClaim(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedResourceClaimWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceClaimStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedResourceClaimStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedResourceClaimStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceClaimStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedResourceClaimStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedResourceClaimTemplate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceClaimTemplate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ResourceSlice\n * @param name name of the ResourceSlice\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchResourceSliceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchResourceSlice(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ResourceSlice\n * @param name name of the ResourceSlice\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchResourceSlice(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchResourceSliceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified DeviceClass\n * @param name name of the DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readDeviceClassWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readDeviceClass(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified DeviceClass\n * @param name name of the DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readDeviceClass(name, pretty, _options) {\n return this.readDeviceClassWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified DeviceTaintRule\n * @param name name of the DeviceTaintRule\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readDeviceTaintRuleWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readDeviceTaintRule(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readDeviceTaintRuleWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified DeviceTaintRule\n * @param name name of the DeviceTaintRule\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readDeviceTaintRule(name, pretty, _options) {\n return this.readDeviceTaintRuleWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceClaimWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedResourceClaim(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceClaim(name, namespace, pretty, _options) {\n return this.readNamespacedResourceClaimWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceClaimStatusWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedResourceClaimStatus(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedResourceClaimStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceClaimStatus(name, namespace, pretty, _options) {\n return this.readNamespacedResourceClaimStatusWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedResourceClaimTemplate(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceClaimTemplate(name, namespace, pretty, _options) {\n return this.readNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ResourceSlice\n * @param name name of the ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readResourceSliceWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readResourceSlice(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ResourceSlice\n * @param name name of the ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readResourceSlice(name, pretty, _options) {\n return this.readResourceSliceWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified DeviceClass\n * @param name name of the DeviceClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceDeviceClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceDeviceClass(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified DeviceClass\n * @param name name of the DeviceClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceDeviceClass(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceDeviceClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified DeviceTaintRule\n * @param name name of the DeviceTaintRule\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceDeviceTaintRuleWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceDeviceTaintRule(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceDeviceTaintRuleWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified DeviceTaintRule\n * @param name name of the DeviceTaintRule\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceDeviceTaintRule(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceDeviceTaintRuleWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceClaimWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedResourceClaim(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceClaim(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedResourceClaimWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceClaimStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedResourceClaimStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedResourceClaimStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceClaimStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedResourceClaimStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedResourceClaimTemplate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceClaimTemplate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ResourceSlice\n * @param name name of the ResourceSlice\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceResourceSliceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceResourceSlice(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ResourceSlice\n * @param name name of the ResourceSlice\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceResourceSlice(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceResourceSliceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { ResourceV1beta1ApiRequestFactory, ResourceV1beta1ApiResponseProcessor } from \"../apis/ResourceV1beta1Api.js\";\nexport class ObservableResourceV1beta1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new ResourceV1beta1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new ResourceV1beta1ApiResponseProcessor();\n }\n /**\n * create a DeviceClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createDeviceClassWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createDeviceClass(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a DeviceClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createDeviceClass(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createDeviceClassWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedResourceClaimWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedResourceClaim(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedResourceClaim(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedResourceClaimWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedResourceClaimTemplateWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedResourceClaimTemplate(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedResourceClaimTemplate(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedResourceClaimTemplateWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ResourceSlice\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createResourceSliceWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createResourceSlice(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ResourceSlice\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createResourceSlice(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createResourceSliceWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionDeviceClassWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionDeviceClass(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionDeviceClass(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionDeviceClassWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedResourceClaimWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedResourceClaim(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedResourceClaim(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedResourceClaimWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedResourceClaimTemplateWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedResourceClaimTemplate(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedResourceClaimTemplate(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedResourceClaimTemplateWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionResourceSliceWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionResourceSlice(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionResourceSlice(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionResourceSliceWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a DeviceClass\n * @param name name of the DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteDeviceClassWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteDeviceClass(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a DeviceClass\n * @param name name of the DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteDeviceClass(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteDeviceClassWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedResourceClaimWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedResourceClaim(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedResourceClaim(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedResourceClaimWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedResourceClaimTemplate(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedResourceClaimTemplate(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ResourceSlice\n * @param name name of the ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteResourceSliceWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteResourceSlice(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ResourceSlice\n * @param name name of the ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteResourceSlice(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteResourceSliceWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listDeviceClassWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listDeviceClass(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listDeviceClass(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listDeviceClassWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedResourceClaimWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedResourceClaim(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedResourceClaim(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedResourceClaimWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedResourceClaimTemplateWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedResourceClaimTemplate(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedResourceClaimTemplate(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedResourceClaimTemplateWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceClaimForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listResourceClaimForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listResourceClaimForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceClaimForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listResourceClaimForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceClaimTemplateForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listResourceClaimTemplateForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listResourceClaimTemplateForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceClaimTemplateForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listResourceClaimTemplateForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceSliceWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listResourceSlice(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceSlice(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listResourceSliceWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified DeviceClass\n * @param name name of the DeviceClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchDeviceClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchDeviceClass(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified DeviceClass\n * @param name name of the DeviceClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchDeviceClass(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchDeviceClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceClaimWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedResourceClaim(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceClaim(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedResourceClaimWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceClaimStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedResourceClaimStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedResourceClaimStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceClaimStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedResourceClaimStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedResourceClaimTemplate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceClaimTemplate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ResourceSlice\n * @param name name of the ResourceSlice\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchResourceSliceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchResourceSlice(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ResourceSlice\n * @param name name of the ResourceSlice\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchResourceSlice(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchResourceSliceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified DeviceClass\n * @param name name of the DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readDeviceClassWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readDeviceClass(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified DeviceClass\n * @param name name of the DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readDeviceClass(name, pretty, _options) {\n return this.readDeviceClassWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceClaimWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedResourceClaim(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceClaim(name, namespace, pretty, _options) {\n return this.readNamespacedResourceClaimWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceClaimStatusWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedResourceClaimStatus(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedResourceClaimStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceClaimStatus(name, namespace, pretty, _options) {\n return this.readNamespacedResourceClaimStatusWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedResourceClaimTemplate(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceClaimTemplate(name, namespace, pretty, _options) {\n return this.readNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ResourceSlice\n * @param name name of the ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readResourceSliceWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readResourceSlice(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ResourceSlice\n * @param name name of the ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readResourceSlice(name, pretty, _options) {\n return this.readResourceSliceWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified DeviceClass\n * @param name name of the DeviceClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceDeviceClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceDeviceClass(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified DeviceClass\n * @param name name of the DeviceClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceDeviceClass(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceDeviceClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceClaimWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedResourceClaim(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceClaim(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedResourceClaimWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceClaimStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedResourceClaimStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedResourceClaimStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceClaimStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedResourceClaimStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedResourceClaimTemplate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceClaimTemplate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ResourceSlice\n * @param name name of the ResourceSlice\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceResourceSliceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceResourceSlice(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ResourceSlice\n * @param name name of the ResourceSlice\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceResourceSlice(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceResourceSliceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { ResourceV1beta2ApiRequestFactory, ResourceV1beta2ApiResponseProcessor } from \"../apis/ResourceV1beta2Api.js\";\nexport class ObservableResourceV1beta2Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new ResourceV1beta2ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new ResourceV1beta2ApiResponseProcessor();\n }\n /**\n * create a DeviceClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createDeviceClassWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createDeviceClass(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a DeviceClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createDeviceClass(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createDeviceClassWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedResourceClaimWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedResourceClaim(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedResourceClaim(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedResourceClaimWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedResourceClaimTemplateWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedResourceClaimTemplate(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedResourceClaimTemplate(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedResourceClaimTemplateWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a ResourceSlice\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createResourceSliceWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createResourceSlice(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a ResourceSlice\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createResourceSlice(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createResourceSliceWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionDeviceClassWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionDeviceClass(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionDeviceClass(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionDeviceClassWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedResourceClaimWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedResourceClaim(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedResourceClaim(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedResourceClaimWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedResourceClaimTemplateWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedResourceClaimTemplate(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedResourceClaimTemplate(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedResourceClaimTemplateWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionResourceSliceWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionResourceSlice(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionResourceSlice(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionResourceSliceWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a DeviceClass\n * @param name name of the DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteDeviceClassWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteDeviceClass(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a DeviceClass\n * @param name name of the DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteDeviceClass(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteDeviceClassWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedResourceClaimWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedResourceClaim(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedResourceClaim(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedResourceClaimWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedResourceClaimTemplate(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedResourceClaimTemplate(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a ResourceSlice\n * @param name name of the ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteResourceSliceWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteResourceSlice(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a ResourceSlice\n * @param name name of the ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteResourceSlice(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteResourceSliceWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listDeviceClassWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listDeviceClass(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listDeviceClass(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listDeviceClassWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedResourceClaimWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedResourceClaim(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedResourceClaim(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedResourceClaimWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedResourceClaimTemplateWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedResourceClaimTemplate(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedResourceClaimTemplate(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedResourceClaimTemplateWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceClaimForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listResourceClaimForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listResourceClaimForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceClaimForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listResourceClaimForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceClaimTemplateForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listResourceClaimTemplateForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listResourceClaimTemplateForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceClaimTemplateForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listResourceClaimTemplateForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceSliceWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listResourceSlice(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listResourceSlice(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listResourceSliceWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified DeviceClass\n * @param name name of the DeviceClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchDeviceClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchDeviceClass(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified DeviceClass\n * @param name name of the DeviceClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchDeviceClass(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchDeviceClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceClaimWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedResourceClaim(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceClaim(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedResourceClaimWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceClaimStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedResourceClaimStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedResourceClaimStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceClaimStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedResourceClaimStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedResourceClaimTemplate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedResourceClaimTemplate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified ResourceSlice\n * @param name name of the ResourceSlice\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchResourceSliceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchResourceSlice(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified ResourceSlice\n * @param name name of the ResourceSlice\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchResourceSlice(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchResourceSliceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified DeviceClass\n * @param name name of the DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readDeviceClassWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readDeviceClass(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified DeviceClass\n * @param name name of the DeviceClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readDeviceClass(name, pretty, _options) {\n return this.readDeviceClassWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceClaimWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedResourceClaim(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceClaim(name, namespace, pretty, _options) {\n return this.readNamespacedResourceClaimWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceClaimStatusWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedResourceClaimStatus(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedResourceClaimStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceClaimStatus(name, namespace, pretty, _options) {\n return this.readNamespacedResourceClaimStatusWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedResourceClaimTemplate(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedResourceClaimTemplate(name, namespace, pretty, _options) {\n return this.readNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified ResourceSlice\n * @param name name of the ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readResourceSliceWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readResourceSlice(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified ResourceSlice\n * @param name name of the ResourceSlice\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readResourceSlice(name, pretty, _options) {\n return this.readResourceSliceWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified DeviceClass\n * @param name name of the DeviceClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceDeviceClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceDeviceClass(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceDeviceClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified DeviceClass\n * @param name name of the DeviceClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceDeviceClass(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceDeviceClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceClaimWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedResourceClaim(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedResourceClaimWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceClaim(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedResourceClaimWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceClaimStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedResourceClaimStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedResourceClaimStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified ResourceClaim\n * @param name name of the ResourceClaim\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceClaimStatus(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedResourceClaimStatusWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedResourceClaimTemplate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedResourceClaimTemplateWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ResourceClaimTemplate\n * @param name name of the ResourceClaimTemplate\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedResourceClaimTemplate(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedResourceClaimTemplateWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified ResourceSlice\n * @param name name of the ResourceSlice\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceResourceSliceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceResourceSlice(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceResourceSliceWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified ResourceSlice\n * @param name name of the ResourceSlice\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceResourceSlice(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceResourceSliceWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { SchedulingApiRequestFactory, SchedulingApiResponseProcessor } from \"../apis/SchedulingApi.js\";\nexport class ObservableSchedulingApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new SchedulingApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new SchedulingApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { SchedulingV1ApiRequestFactory, SchedulingV1ApiResponseProcessor } from \"../apis/SchedulingV1Api.js\";\nexport class ObservableSchedulingV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new SchedulingV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new SchedulingV1ApiResponseProcessor();\n }\n /**\n * create a PriorityClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createPriorityClassWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createPriorityClass(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createPriorityClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a PriorityClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createPriorityClass(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createPriorityClassWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of PriorityClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionPriorityClassWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionPriorityClass(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionPriorityClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of PriorityClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionPriorityClass(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionPriorityClassWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a PriorityClass\n * @param name name of the PriorityClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deletePriorityClassWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deletePriorityClass(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deletePriorityClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a PriorityClass\n * @param name name of the PriorityClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deletePriorityClass(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deletePriorityClassWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind PriorityClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listPriorityClassWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listPriorityClass(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listPriorityClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind PriorityClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listPriorityClass(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listPriorityClassWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified PriorityClass\n * @param name name of the PriorityClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchPriorityClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchPriorityClass(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchPriorityClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified PriorityClass\n * @param name name of the PriorityClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchPriorityClass(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchPriorityClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified PriorityClass\n * @param name name of the PriorityClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readPriorityClassWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readPriorityClass(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readPriorityClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified PriorityClass\n * @param name name of the PriorityClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readPriorityClass(name, pretty, _options) {\n return this.readPriorityClassWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified PriorityClass\n * @param name name of the PriorityClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replacePriorityClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replacePriorityClass(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replacePriorityClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified PriorityClass\n * @param name name of the PriorityClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replacePriorityClass(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replacePriorityClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { StorageApiRequestFactory, StorageApiResponseProcessor } from \"../apis/StorageApi.js\";\nexport class ObservableStorageApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new StorageApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new StorageApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { StorageV1ApiRequestFactory, StorageV1ApiResponseProcessor } from \"../apis/StorageV1Api.js\";\nexport class ObservableStorageV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new StorageV1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new StorageV1ApiResponseProcessor();\n }\n /**\n * create a CSIDriver\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createCSIDriverWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createCSIDriver(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createCSIDriverWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a CSIDriver\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createCSIDriver(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createCSIDriverWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a CSINode\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createCSINodeWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createCSINode(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createCSINodeWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a CSINode\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createCSINode(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createCSINodeWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a CSIStorageCapacity\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedCSIStorageCapacityWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createNamespacedCSIStorageCapacity(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createNamespacedCSIStorageCapacityWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a CSIStorageCapacity\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createNamespacedCSIStorageCapacity(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createNamespacedCSIStorageCapacityWithHttpInfo(namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a StorageClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createStorageClassWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createStorageClass(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createStorageClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a StorageClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createStorageClass(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createStorageClassWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * create a VolumeAttachment\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createVolumeAttachmentWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createVolumeAttachment(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createVolumeAttachmentWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a VolumeAttachment\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createVolumeAttachment(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createVolumeAttachmentWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a CSIDriver\n * @param name name of the CSIDriver\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteCSIDriverWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCSIDriver(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCSIDriverWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a CSIDriver\n * @param name name of the CSIDriver\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteCSIDriver(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteCSIDriverWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a CSINode\n * @param name name of the CSINode\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteCSINodeWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCSINode(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCSINodeWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a CSINode\n * @param name name of the CSINode\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteCSINode(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteCSINodeWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of CSIDriver\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionCSIDriverWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionCSIDriver(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionCSIDriverWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of CSIDriver\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionCSIDriver(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionCSIDriverWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of CSINode\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionCSINodeWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionCSINode(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionCSINodeWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of CSINode\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionCSINode(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionCSINodeWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of CSIStorageCapacity\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedCSIStorageCapacityWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionNamespacedCSIStorageCapacity(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionNamespacedCSIStorageCapacityWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of CSIStorageCapacity\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionNamespacedCSIStorageCapacity(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionNamespacedCSIStorageCapacityWithHttpInfo(namespace, pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of StorageClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionStorageClassWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionStorageClass(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionStorageClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of StorageClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionStorageClass(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionStorageClassWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of VolumeAttachment\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionVolumeAttachmentWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionVolumeAttachment(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionVolumeAttachmentWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of VolumeAttachment\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionVolumeAttachment(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionVolumeAttachmentWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a CSIStorageCapacity\n * @param name name of the CSIStorageCapacity\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedCSIStorageCapacityWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteNamespacedCSIStorageCapacity(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteNamespacedCSIStorageCapacityWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a CSIStorageCapacity\n * @param name name of the CSIStorageCapacity\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteNamespacedCSIStorageCapacity(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteNamespacedCSIStorageCapacityWithHttpInfo(name, namespace, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a StorageClass\n * @param name name of the StorageClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteStorageClassWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteStorageClass(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteStorageClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a StorageClass\n * @param name name of the StorageClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteStorageClass(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteStorageClassWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a VolumeAttachment\n * @param name name of the VolumeAttachment\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteVolumeAttachmentWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteVolumeAttachment(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteVolumeAttachmentWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a VolumeAttachment\n * @param name name of the VolumeAttachment\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteVolumeAttachment(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteVolumeAttachmentWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind CSIDriver\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listCSIDriverWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listCSIDriver(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listCSIDriverWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind CSIDriver\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listCSIDriver(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listCSIDriverWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind CSINode\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listCSINodeWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listCSINode(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listCSINodeWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind CSINode\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listCSINode(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listCSINodeWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind CSIStorageCapacity\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listCSIStorageCapacityForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listCSIStorageCapacityForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listCSIStorageCapacityForAllNamespacesWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind CSIStorageCapacity\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listCSIStorageCapacityForAllNamespaces(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listCSIStorageCapacityForAllNamespacesWithHttpInfo(allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, pretty, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind CSIStorageCapacity\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedCSIStorageCapacityWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listNamespacedCSIStorageCapacity(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listNamespacedCSIStorageCapacityWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind CSIStorageCapacity\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listNamespacedCSIStorageCapacity(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listNamespacedCSIStorageCapacityWithHttpInfo(namespace, pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind StorageClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listStorageClassWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listStorageClass(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listStorageClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind StorageClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listStorageClass(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listStorageClassWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind VolumeAttachment\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listVolumeAttachmentWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listVolumeAttachment(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listVolumeAttachmentWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind VolumeAttachment\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listVolumeAttachment(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listVolumeAttachmentWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified CSIDriver\n * @param name name of the CSIDriver\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchCSIDriverWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchCSIDriver(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchCSIDriverWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified CSIDriver\n * @param name name of the CSIDriver\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchCSIDriver(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchCSIDriverWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified CSINode\n * @param name name of the CSINode\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchCSINodeWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchCSINode(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchCSINodeWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified CSINode\n * @param name name of the CSINode\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchCSINode(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchCSINodeWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified CSIStorageCapacity\n * @param name name of the CSIStorageCapacity\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedCSIStorageCapacityWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchNamespacedCSIStorageCapacity(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchNamespacedCSIStorageCapacityWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified CSIStorageCapacity\n * @param name name of the CSIStorageCapacity\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchNamespacedCSIStorageCapacity(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchNamespacedCSIStorageCapacityWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified StorageClass\n * @param name name of the StorageClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchStorageClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchStorageClass(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchStorageClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified StorageClass\n * @param name name of the StorageClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchStorageClass(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchStorageClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified VolumeAttachment\n * @param name name of the VolumeAttachment\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchVolumeAttachmentWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchVolumeAttachment(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchVolumeAttachmentWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified VolumeAttachment\n * @param name name of the VolumeAttachment\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchVolumeAttachment(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchVolumeAttachmentWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified VolumeAttachment\n * @param name name of the VolumeAttachment\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchVolumeAttachmentStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchVolumeAttachmentStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchVolumeAttachmentStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified VolumeAttachment\n * @param name name of the VolumeAttachment\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchVolumeAttachmentStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchVolumeAttachmentStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified CSIDriver\n * @param name name of the CSIDriver\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readCSIDriverWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readCSIDriver(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readCSIDriverWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified CSIDriver\n * @param name name of the CSIDriver\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readCSIDriver(name, pretty, _options) {\n return this.readCSIDriverWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified CSINode\n * @param name name of the CSINode\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readCSINodeWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readCSINode(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readCSINodeWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified CSINode\n * @param name name of the CSINode\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readCSINode(name, pretty, _options) {\n return this.readCSINodeWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified CSIStorageCapacity\n * @param name name of the CSIStorageCapacity\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedCSIStorageCapacityWithHttpInfo(name, namespace, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readNamespacedCSIStorageCapacity(name, namespace, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readNamespacedCSIStorageCapacityWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified CSIStorageCapacity\n * @param name name of the CSIStorageCapacity\n * @param namespace object name and auth scope, such as for teams and projects\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readNamespacedCSIStorageCapacity(name, namespace, pretty, _options) {\n return this.readNamespacedCSIStorageCapacityWithHttpInfo(name, namespace, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified StorageClass\n * @param name name of the StorageClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readStorageClassWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readStorageClass(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readStorageClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified StorageClass\n * @param name name of the StorageClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readStorageClass(name, pretty, _options) {\n return this.readStorageClassWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified VolumeAttachment\n * @param name name of the VolumeAttachment\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readVolumeAttachmentWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readVolumeAttachment(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readVolumeAttachmentWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified VolumeAttachment\n * @param name name of the VolumeAttachment\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readVolumeAttachment(name, pretty, _options) {\n return this.readVolumeAttachmentWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified VolumeAttachment\n * @param name name of the VolumeAttachment\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readVolumeAttachmentStatusWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readVolumeAttachmentStatus(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readVolumeAttachmentStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified VolumeAttachment\n * @param name name of the VolumeAttachment\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readVolumeAttachmentStatus(name, pretty, _options) {\n return this.readVolumeAttachmentStatusWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified CSIDriver\n * @param name name of the CSIDriver\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceCSIDriverWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceCSIDriver(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceCSIDriverWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified CSIDriver\n * @param name name of the CSIDriver\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceCSIDriver(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceCSIDriverWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified CSINode\n * @param name name of the CSINode\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceCSINodeWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceCSINode(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceCSINodeWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified CSINode\n * @param name name of the CSINode\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceCSINode(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceCSINodeWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified CSIStorageCapacity\n * @param name name of the CSIStorageCapacity\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedCSIStorageCapacityWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceNamespacedCSIStorageCapacity(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceNamespacedCSIStorageCapacityWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified CSIStorageCapacity\n * @param name name of the CSIStorageCapacity\n * @param namespace object name and auth scope, such as for teams and projects\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceNamespacedCSIStorageCapacity(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceNamespacedCSIStorageCapacityWithHttpInfo(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified StorageClass\n * @param name name of the StorageClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceStorageClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceStorageClass(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceStorageClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified StorageClass\n * @param name name of the StorageClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceStorageClass(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceStorageClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified VolumeAttachment\n * @param name name of the VolumeAttachment\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceVolumeAttachmentWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceVolumeAttachment(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceVolumeAttachmentWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified VolumeAttachment\n * @param name name of the VolumeAttachment\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceVolumeAttachment(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceVolumeAttachmentWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified VolumeAttachment\n * @param name name of the VolumeAttachment\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceVolumeAttachmentStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceVolumeAttachmentStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceVolumeAttachmentStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified VolumeAttachment\n * @param name name of the VolumeAttachment\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceVolumeAttachmentStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceVolumeAttachmentStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { StorageV1alpha1ApiRequestFactory, StorageV1alpha1ApiResponseProcessor } from \"../apis/StorageV1alpha1Api.js\";\nexport class ObservableStorageV1alpha1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new StorageV1alpha1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new StorageV1alpha1ApiResponseProcessor();\n }\n /**\n * create a VolumeAttributesClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createVolumeAttributesClassWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createVolumeAttributesClass(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createVolumeAttributesClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a VolumeAttributesClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createVolumeAttributesClass(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createVolumeAttributesClassWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of VolumeAttributesClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionVolumeAttributesClassWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionVolumeAttributesClass(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionVolumeAttributesClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of VolumeAttributesClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionVolumeAttributesClass(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionVolumeAttributesClassWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a VolumeAttributesClass\n * @param name name of the VolumeAttributesClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteVolumeAttributesClassWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteVolumeAttributesClass(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteVolumeAttributesClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a VolumeAttributesClass\n * @param name name of the VolumeAttributesClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteVolumeAttributesClass(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteVolumeAttributesClassWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind VolumeAttributesClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listVolumeAttributesClassWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listVolumeAttributesClass(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listVolumeAttributesClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind VolumeAttributesClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listVolumeAttributesClass(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listVolumeAttributesClassWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified VolumeAttributesClass\n * @param name name of the VolumeAttributesClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchVolumeAttributesClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchVolumeAttributesClass(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchVolumeAttributesClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified VolumeAttributesClass\n * @param name name of the VolumeAttributesClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchVolumeAttributesClass(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchVolumeAttributesClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified VolumeAttributesClass\n * @param name name of the VolumeAttributesClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readVolumeAttributesClassWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readVolumeAttributesClass(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readVolumeAttributesClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified VolumeAttributesClass\n * @param name name of the VolumeAttributesClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readVolumeAttributesClass(name, pretty, _options) {\n return this.readVolumeAttributesClassWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified VolumeAttributesClass\n * @param name name of the VolumeAttributesClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceVolumeAttributesClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceVolumeAttributesClass(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceVolumeAttributesClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified VolumeAttributesClass\n * @param name name of the VolumeAttributesClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceVolumeAttributesClass(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceVolumeAttributesClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { StorageV1beta1ApiRequestFactory, StorageV1beta1ApiResponseProcessor } from \"../apis/StorageV1beta1Api.js\";\nexport class ObservableStorageV1beta1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new StorageV1beta1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new StorageV1beta1ApiResponseProcessor();\n }\n /**\n * create a VolumeAttributesClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createVolumeAttributesClassWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createVolumeAttributesClass(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createVolumeAttributesClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a VolumeAttributesClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createVolumeAttributesClass(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createVolumeAttributesClassWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of VolumeAttributesClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionVolumeAttributesClassWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionVolumeAttributesClass(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionVolumeAttributesClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of VolumeAttributesClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionVolumeAttributesClass(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionVolumeAttributesClassWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a VolumeAttributesClass\n * @param name name of the VolumeAttributesClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteVolumeAttributesClassWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteVolumeAttributesClass(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteVolumeAttributesClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a VolumeAttributesClass\n * @param name name of the VolumeAttributesClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteVolumeAttributesClass(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteVolumeAttributesClassWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind VolumeAttributesClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listVolumeAttributesClassWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listVolumeAttributesClass(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listVolumeAttributesClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind VolumeAttributesClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listVolumeAttributesClass(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listVolumeAttributesClassWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified VolumeAttributesClass\n * @param name name of the VolumeAttributesClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchVolumeAttributesClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchVolumeAttributesClass(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchVolumeAttributesClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified VolumeAttributesClass\n * @param name name of the VolumeAttributesClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchVolumeAttributesClass(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchVolumeAttributesClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified VolumeAttributesClass\n * @param name name of the VolumeAttributesClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readVolumeAttributesClassWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readVolumeAttributesClass(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readVolumeAttributesClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified VolumeAttributesClass\n * @param name name of the VolumeAttributesClass\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readVolumeAttributesClass(name, pretty, _options) {\n return this.readVolumeAttributesClassWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified VolumeAttributesClass\n * @param name name of the VolumeAttributesClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceVolumeAttributesClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceVolumeAttributesClass(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceVolumeAttributesClassWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified VolumeAttributesClass\n * @param name name of the VolumeAttributesClass\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceVolumeAttributesClass(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceVolumeAttributesClassWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { StoragemigrationApiRequestFactory, StoragemigrationApiResponseProcessor } from \"../apis/StoragemigrationApi.js\";\nexport class ObservableStoragemigrationApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new StoragemigrationApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new StoragemigrationApiResponseProcessor();\n }\n /**\n * get information of a group\n */\n getAPIGroupWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIGroup(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIGroupWithHttpInfo(rsp)));\n }));\n }\n /**\n * get information of a group\n */\n getAPIGroup(_options) {\n return this.getAPIGroupWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { StoragemigrationV1alpha1ApiRequestFactory, StoragemigrationV1alpha1ApiResponseProcessor } from \"../apis/StoragemigrationV1alpha1Api.js\";\nexport class ObservableStoragemigrationV1alpha1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new StoragemigrationV1alpha1ApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new StoragemigrationV1alpha1ApiResponseProcessor();\n }\n /**\n * create a StorageVersionMigration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createStorageVersionMigrationWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.createStorageVersionMigration(body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.createStorageVersionMigrationWithHttpInfo(rsp)));\n }));\n }\n /**\n * create a StorageVersionMigration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n createStorageVersionMigration(body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.createStorageVersionMigrationWithHttpInfo(body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete collection of StorageVersionMigration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionStorageVersionMigrationWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteCollectionStorageVersionMigration(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteCollectionStorageVersionMigrationWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete collection of StorageVersionMigration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [body]\n */\n deleteCollectionStorageVersionMigration(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options) {\n return this.deleteCollectionStorageVersionMigrationWithHttpInfo(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * delete a StorageVersionMigration\n * @param name name of the StorageVersionMigration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteStorageVersionMigrationWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.deleteStorageVersionMigration(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.deleteStorageVersionMigrationWithHttpInfo(rsp)));\n }));\n }\n /**\n * delete a StorageVersionMigration\n * @param name name of the StorageVersionMigration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [gracePeriodSeconds] The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\n * @param [ignoreStoreReadErrorWithClusterBreakingPotential] if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\n * @param [orphanDependents] Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be set, but not both.\n * @param [propagationPolicy] Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents in the foreground.\n * @param [body]\n */\n deleteStorageVersionMigration(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options) {\n return this.deleteStorageVersionMigrationWithHttpInfo(name, pretty, dryRun, gracePeriodSeconds, ignoreStoreReadErrorWithClusterBreakingPotential, orphanDependents, propagationPolicy, body, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * get available resources\n */\n getAPIResourcesWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getAPIResources(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getAPIResourcesWithHttpInfo(rsp)));\n }));\n }\n /**\n * get available resources\n */\n getAPIResources(_options) {\n return this.getAPIResourcesWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * list or watch objects of kind StorageVersionMigration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listStorageVersionMigrationWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.listStorageVersionMigration(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.listStorageVersionMigrationWithHttpInfo(rsp)));\n }));\n }\n /**\n * list or watch objects of kind StorageVersionMigration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [allowWatchBookmarks] allowWatchBookmarks requests watch events with type \\"BOOKMARK\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server\\'s discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\n * @param [_continue] The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\"next key\\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\n * @param [fieldSelector] A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param [labelSelector] A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param [limit] limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\n * @param [resourceVersion] resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [resourceVersionMatch] resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset\n * @param [sendInitialEvents] `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\"Bookmark\\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\"k8s.io/initial-events-end\\": \\"true\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \\"data at least as new as the provided `resourceVersion`\\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \\"consistent read\\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\\"\\"` or `resourceVersion=\\"0\\"` (for backward compatibility reasons) and to false otherwise.\n * @param [timeoutSeconds] Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\n * @param [watch] Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\n */\n listStorageVersionMigration(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options) {\n return this.listStorageVersionMigrationWithHttpInfo(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, sendInitialEvents, timeoutSeconds, watch, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update the specified StorageVersionMigration\n * @param name name of the StorageVersionMigration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchStorageVersionMigrationWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchStorageVersionMigration(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchStorageVersionMigrationWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update the specified StorageVersionMigration\n * @param name name of the StorageVersionMigration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchStorageVersionMigration(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchStorageVersionMigrationWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * partially update status of the specified StorageVersionMigration\n * @param name name of the StorageVersionMigration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchStorageVersionMigrationStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.patchStorageVersionMigrationStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.patchStorageVersionMigrationStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * partially update status of the specified StorageVersionMigration\n * @param name name of the StorageVersionMigration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n * @param [force] Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\n */\n patchStorageVersionMigrationStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options) {\n return this.patchStorageVersionMigrationStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, force, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read the specified StorageVersionMigration\n * @param name name of the StorageVersionMigration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readStorageVersionMigrationWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readStorageVersionMigration(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readStorageVersionMigrationWithHttpInfo(rsp)));\n }));\n }\n /**\n * read the specified StorageVersionMigration\n * @param name name of the StorageVersionMigration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readStorageVersionMigration(name, pretty, _options) {\n return this.readStorageVersionMigrationWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * read status of the specified StorageVersionMigration\n * @param name name of the StorageVersionMigration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readStorageVersionMigrationStatusWithHttpInfo(name, pretty, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.readStorageVersionMigrationStatus(name, pretty, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.readStorageVersionMigrationStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * read status of the specified StorageVersionMigration\n * @param name name of the StorageVersionMigration\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n */\n readStorageVersionMigrationStatus(name, pretty, _options) {\n return this.readStorageVersionMigrationStatusWithHttpInfo(name, pretty, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace the specified StorageVersionMigration\n * @param name name of the StorageVersionMigration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceStorageVersionMigrationWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceStorageVersionMigration(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceStorageVersionMigrationWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace the specified StorageVersionMigration\n * @param name name of the StorageVersionMigration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceStorageVersionMigration(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceStorageVersionMigrationWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n /**\n * replace status of the specified StorageVersionMigration\n * @param name name of the StorageVersionMigration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceStorageVersionMigrationStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.replaceStorageVersionMigrationStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.replaceStorageVersionMigrationStatusWithHttpInfo(rsp)));\n }));\n }\n /**\n * replace status of the specified StorageVersionMigration\n * @param name name of the StorageVersionMigration\n * @param body\n * @param [pretty] If \\'true\\', then the output is pretty printed. Defaults to \\'false\\' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).\n * @param [dryRun] When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\n * @param [fieldManager] fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\n * @param [fieldValidation] fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\n */\n replaceStorageVersionMigrationStatus(name, body, pretty, dryRun, fieldManager, fieldValidation, _options) {\n return this.replaceStorageVersionMigrationStatusWithHttpInfo(name, body, pretty, dryRun, fieldManager, fieldValidation, _options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { VersionApiRequestFactory, VersionApiResponseProcessor } from \"../apis/VersionApi.js\";\nexport class ObservableVersionApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new VersionApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new VersionApiResponseProcessor();\n }\n /**\n * get the version information for this server\n */\n getCodeWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getCode(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getCodeWithHttpInfo(rsp)));\n }));\n }\n /**\n * get the version information for this server\n */\n getCode(_options) {\n return this.getCodeWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\nimport { WellKnownApiRequestFactory, WellKnownApiResponseProcessor } from \"../apis/WellKnownApi.js\";\nexport class ObservableWellKnownApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.configuration = configuration;\n this.requestFactory = requestFactory || new WellKnownApiRequestFactory(configuration);\n this.responseProcessor = responseProcessor || new WellKnownApiResponseProcessor();\n }\n /**\n * get service account issuer OpenID configuration, also known as the \\'OIDC discovery doc\\'\n */\n getServiceAccountIssuerOpenIDConfigurationWithHttpInfo(_options) {\n let _config = this.configuration;\n let allMiddleware = [];\n if (_options && _options.middleware) {\n const middlewareMergeStrategy = _options.middlewareMergeStrategy || 'replace'; // default to replace behavior\n // call-time middleware provided\n const calltimeMiddleware = _options.middleware;\n switch (middlewareMergeStrategy) {\n case 'append':\n allMiddleware = this.configuration.middleware.concat(calltimeMiddleware);\n break;\n case 'prepend':\n allMiddleware = calltimeMiddleware.concat(this.configuration.middleware);\n break;\n case 'replace':\n allMiddleware = calltimeMiddleware;\n break;\n default:\n throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);\n }\n }\n if (_options) {\n _config = {\n baseServer: _options.baseServer || this.configuration.baseServer,\n httpApi: _options.httpApi || this.configuration.httpApi,\n authMethods: _options.authMethods || this.configuration.authMethods,\n middleware: allMiddleware || this.configuration.middleware\n };\n }\n const requestContextPromise = this.requestFactory.getServiceAccountIssuerOpenIDConfiguration(_config);\n // build promise chain\n let middlewarePreObservable = from(requestContextPromise);\n for (const middleware of allMiddleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable.pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx))).\n pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of allMiddleware.reverse()) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe(map((rsp) => this.responseProcessor.getServiceAccountIssuerOpenIDConfigurationWithHttpInfo(rsp)));\n }));\n }\n /**\n * get service account issuer OpenID configuration, also known as the \\'OIDC discovery doc\\'\n */\n getServiceAccountIssuerOpenIDConfiguration(_options) {\n return this.getServiceAccountIssuerOpenIDConfigurationWithHttpInfo(_options).pipe(map((apiResponse) => apiResponse.data));\n }\n}\n//# sourceMappingURL=ObservableAPI.js.map","import { ObservableAdmissionregistrationApi } from \"./ObservableAPI.js\";\nexport class ObjectAdmissionregistrationApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableAdmissionregistrationApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableAdmissionregistrationV1Api } from \"./ObservableAPI.js\";\nexport class ObjectAdmissionregistrationV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableAdmissionregistrationV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a MutatingWebhookConfiguration\n * @param param the request object\n */\n createMutatingWebhookConfigurationWithHttpInfo(param, options) {\n return this.api.createMutatingWebhookConfigurationWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a MutatingWebhookConfiguration\n * @param param the request object\n */\n createMutatingWebhookConfiguration(param, options) {\n return this.api.createMutatingWebhookConfiguration(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ValidatingAdmissionPolicy\n * @param param the request object\n */\n createValidatingAdmissionPolicyWithHttpInfo(param, options) {\n return this.api.createValidatingAdmissionPolicyWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ValidatingAdmissionPolicy\n * @param param the request object\n */\n createValidatingAdmissionPolicy(param, options) {\n return this.api.createValidatingAdmissionPolicy(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n createValidatingAdmissionPolicyBindingWithHttpInfo(param, options) {\n return this.api.createValidatingAdmissionPolicyBindingWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n createValidatingAdmissionPolicyBinding(param, options) {\n return this.api.createValidatingAdmissionPolicyBinding(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ValidatingWebhookConfiguration\n * @param param the request object\n */\n createValidatingWebhookConfigurationWithHttpInfo(param, options) {\n return this.api.createValidatingWebhookConfigurationWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ValidatingWebhookConfiguration\n * @param param the request object\n */\n createValidatingWebhookConfiguration(param, options) {\n return this.api.createValidatingWebhookConfiguration(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of MutatingWebhookConfiguration\n * @param param the request object\n */\n deleteCollectionMutatingWebhookConfigurationWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionMutatingWebhookConfigurationWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of MutatingWebhookConfiguration\n * @param param the request object\n */\n deleteCollectionMutatingWebhookConfiguration(param = {}, options) {\n return this.api.deleteCollectionMutatingWebhookConfiguration(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ValidatingAdmissionPolicy\n * @param param the request object\n */\n deleteCollectionValidatingAdmissionPolicyWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionValidatingAdmissionPolicyWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ValidatingAdmissionPolicy\n * @param param the request object\n */\n deleteCollectionValidatingAdmissionPolicy(param = {}, options) {\n return this.api.deleteCollectionValidatingAdmissionPolicy(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n deleteCollectionValidatingAdmissionPolicyBindingWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionValidatingAdmissionPolicyBindingWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n deleteCollectionValidatingAdmissionPolicyBinding(param = {}, options) {\n return this.api.deleteCollectionValidatingAdmissionPolicyBinding(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ValidatingWebhookConfiguration\n * @param param the request object\n */\n deleteCollectionValidatingWebhookConfigurationWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionValidatingWebhookConfigurationWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ValidatingWebhookConfiguration\n * @param param the request object\n */\n deleteCollectionValidatingWebhookConfiguration(param = {}, options) {\n return this.api.deleteCollectionValidatingWebhookConfiguration(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a MutatingWebhookConfiguration\n * @param param the request object\n */\n deleteMutatingWebhookConfigurationWithHttpInfo(param, options) {\n return this.api.deleteMutatingWebhookConfigurationWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a MutatingWebhookConfiguration\n * @param param the request object\n */\n deleteMutatingWebhookConfiguration(param, options) {\n return this.api.deleteMutatingWebhookConfiguration(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ValidatingAdmissionPolicy\n * @param param the request object\n */\n deleteValidatingAdmissionPolicyWithHttpInfo(param, options) {\n return this.api.deleteValidatingAdmissionPolicyWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ValidatingAdmissionPolicy\n * @param param the request object\n */\n deleteValidatingAdmissionPolicy(param, options) {\n return this.api.deleteValidatingAdmissionPolicy(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n deleteValidatingAdmissionPolicyBindingWithHttpInfo(param, options) {\n return this.api.deleteValidatingAdmissionPolicyBindingWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n deleteValidatingAdmissionPolicyBinding(param, options) {\n return this.api.deleteValidatingAdmissionPolicyBinding(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ValidatingWebhookConfiguration\n * @param param the request object\n */\n deleteValidatingWebhookConfigurationWithHttpInfo(param, options) {\n return this.api.deleteValidatingWebhookConfigurationWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ValidatingWebhookConfiguration\n * @param param the request object\n */\n deleteValidatingWebhookConfiguration(param, options) {\n return this.api.deleteValidatingWebhookConfiguration(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind MutatingWebhookConfiguration\n * @param param the request object\n */\n listMutatingWebhookConfigurationWithHttpInfo(param = {}, options) {\n return this.api.listMutatingWebhookConfigurationWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind MutatingWebhookConfiguration\n * @param param the request object\n */\n listMutatingWebhookConfiguration(param = {}, options) {\n return this.api.listMutatingWebhookConfiguration(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ValidatingAdmissionPolicy\n * @param param the request object\n */\n listValidatingAdmissionPolicyWithHttpInfo(param = {}, options) {\n return this.api.listValidatingAdmissionPolicyWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ValidatingAdmissionPolicy\n * @param param the request object\n */\n listValidatingAdmissionPolicy(param = {}, options) {\n return this.api.listValidatingAdmissionPolicy(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n listValidatingAdmissionPolicyBindingWithHttpInfo(param = {}, options) {\n return this.api.listValidatingAdmissionPolicyBindingWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n listValidatingAdmissionPolicyBinding(param = {}, options) {\n return this.api.listValidatingAdmissionPolicyBinding(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ValidatingWebhookConfiguration\n * @param param the request object\n */\n listValidatingWebhookConfigurationWithHttpInfo(param = {}, options) {\n return this.api.listValidatingWebhookConfigurationWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ValidatingWebhookConfiguration\n * @param param the request object\n */\n listValidatingWebhookConfiguration(param = {}, options) {\n return this.api.listValidatingWebhookConfiguration(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified MutatingWebhookConfiguration\n * @param param the request object\n */\n patchMutatingWebhookConfigurationWithHttpInfo(param, options) {\n return this.api.patchMutatingWebhookConfigurationWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified MutatingWebhookConfiguration\n * @param param the request object\n */\n patchMutatingWebhookConfiguration(param, options) {\n return this.api.patchMutatingWebhookConfiguration(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n patchValidatingAdmissionPolicyWithHttpInfo(param, options) {\n return this.api.patchValidatingAdmissionPolicyWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n patchValidatingAdmissionPolicy(param, options) {\n return this.api.patchValidatingAdmissionPolicy(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n patchValidatingAdmissionPolicyBindingWithHttpInfo(param, options) {\n return this.api.patchValidatingAdmissionPolicyBindingWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n patchValidatingAdmissionPolicyBinding(param, options) {\n return this.api.patchValidatingAdmissionPolicyBinding(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n patchValidatingAdmissionPolicyStatusWithHttpInfo(param, options) {\n return this.api.patchValidatingAdmissionPolicyStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n patchValidatingAdmissionPolicyStatus(param, options) {\n return this.api.patchValidatingAdmissionPolicyStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ValidatingWebhookConfiguration\n * @param param the request object\n */\n patchValidatingWebhookConfigurationWithHttpInfo(param, options) {\n return this.api.patchValidatingWebhookConfigurationWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ValidatingWebhookConfiguration\n * @param param the request object\n */\n patchValidatingWebhookConfiguration(param, options) {\n return this.api.patchValidatingWebhookConfiguration(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified MutatingWebhookConfiguration\n * @param param the request object\n */\n readMutatingWebhookConfigurationWithHttpInfo(param, options) {\n return this.api.readMutatingWebhookConfigurationWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified MutatingWebhookConfiguration\n * @param param the request object\n */\n readMutatingWebhookConfiguration(param, options) {\n return this.api.readMutatingWebhookConfiguration(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n readValidatingAdmissionPolicyWithHttpInfo(param, options) {\n return this.api.readValidatingAdmissionPolicyWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n readValidatingAdmissionPolicy(param, options) {\n return this.api.readValidatingAdmissionPolicy(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n readValidatingAdmissionPolicyBindingWithHttpInfo(param, options) {\n return this.api.readValidatingAdmissionPolicyBindingWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n readValidatingAdmissionPolicyBinding(param, options) {\n return this.api.readValidatingAdmissionPolicyBinding(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n readValidatingAdmissionPolicyStatusWithHttpInfo(param, options) {\n return this.api.readValidatingAdmissionPolicyStatusWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n readValidatingAdmissionPolicyStatus(param, options) {\n return this.api.readValidatingAdmissionPolicyStatus(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ValidatingWebhookConfiguration\n * @param param the request object\n */\n readValidatingWebhookConfigurationWithHttpInfo(param, options) {\n return this.api.readValidatingWebhookConfigurationWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ValidatingWebhookConfiguration\n * @param param the request object\n */\n readValidatingWebhookConfiguration(param, options) {\n return this.api.readValidatingWebhookConfiguration(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified MutatingWebhookConfiguration\n * @param param the request object\n */\n replaceMutatingWebhookConfigurationWithHttpInfo(param, options) {\n return this.api.replaceMutatingWebhookConfigurationWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified MutatingWebhookConfiguration\n * @param param the request object\n */\n replaceMutatingWebhookConfiguration(param, options) {\n return this.api.replaceMutatingWebhookConfiguration(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n replaceValidatingAdmissionPolicyWithHttpInfo(param, options) {\n return this.api.replaceValidatingAdmissionPolicyWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n replaceValidatingAdmissionPolicy(param, options) {\n return this.api.replaceValidatingAdmissionPolicy(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n replaceValidatingAdmissionPolicyBindingWithHttpInfo(param, options) {\n return this.api.replaceValidatingAdmissionPolicyBindingWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n replaceValidatingAdmissionPolicyBinding(param, options) {\n return this.api.replaceValidatingAdmissionPolicyBinding(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n replaceValidatingAdmissionPolicyStatusWithHttpInfo(param, options) {\n return this.api.replaceValidatingAdmissionPolicyStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n replaceValidatingAdmissionPolicyStatus(param, options) {\n return this.api.replaceValidatingAdmissionPolicyStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ValidatingWebhookConfiguration\n * @param param the request object\n */\n replaceValidatingWebhookConfigurationWithHttpInfo(param, options) {\n return this.api.replaceValidatingWebhookConfigurationWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ValidatingWebhookConfiguration\n * @param param the request object\n */\n replaceValidatingWebhookConfiguration(param, options) {\n return this.api.replaceValidatingWebhookConfiguration(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableAdmissionregistrationV1alpha1Api } from \"./ObservableAPI.js\";\nexport class ObjectAdmissionregistrationV1alpha1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableAdmissionregistrationV1alpha1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a MutatingAdmissionPolicy\n * @param param the request object\n */\n createMutatingAdmissionPolicyWithHttpInfo(param, options) {\n return this.api.createMutatingAdmissionPolicyWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a MutatingAdmissionPolicy\n * @param param the request object\n */\n createMutatingAdmissionPolicy(param, options) {\n return this.api.createMutatingAdmissionPolicy(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a MutatingAdmissionPolicyBinding\n * @param param the request object\n */\n createMutatingAdmissionPolicyBindingWithHttpInfo(param, options) {\n return this.api.createMutatingAdmissionPolicyBindingWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a MutatingAdmissionPolicyBinding\n * @param param the request object\n */\n createMutatingAdmissionPolicyBinding(param, options) {\n return this.api.createMutatingAdmissionPolicyBinding(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of MutatingAdmissionPolicy\n * @param param the request object\n */\n deleteCollectionMutatingAdmissionPolicyWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionMutatingAdmissionPolicyWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of MutatingAdmissionPolicy\n * @param param the request object\n */\n deleteCollectionMutatingAdmissionPolicy(param = {}, options) {\n return this.api.deleteCollectionMutatingAdmissionPolicy(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of MutatingAdmissionPolicyBinding\n * @param param the request object\n */\n deleteCollectionMutatingAdmissionPolicyBindingWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionMutatingAdmissionPolicyBindingWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of MutatingAdmissionPolicyBinding\n * @param param the request object\n */\n deleteCollectionMutatingAdmissionPolicyBinding(param = {}, options) {\n return this.api.deleteCollectionMutatingAdmissionPolicyBinding(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a MutatingAdmissionPolicy\n * @param param the request object\n */\n deleteMutatingAdmissionPolicyWithHttpInfo(param, options) {\n return this.api.deleteMutatingAdmissionPolicyWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a MutatingAdmissionPolicy\n * @param param the request object\n */\n deleteMutatingAdmissionPolicy(param, options) {\n return this.api.deleteMutatingAdmissionPolicy(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a MutatingAdmissionPolicyBinding\n * @param param the request object\n */\n deleteMutatingAdmissionPolicyBindingWithHttpInfo(param, options) {\n return this.api.deleteMutatingAdmissionPolicyBindingWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a MutatingAdmissionPolicyBinding\n * @param param the request object\n */\n deleteMutatingAdmissionPolicyBinding(param, options) {\n return this.api.deleteMutatingAdmissionPolicyBinding(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind MutatingAdmissionPolicy\n * @param param the request object\n */\n listMutatingAdmissionPolicyWithHttpInfo(param = {}, options) {\n return this.api.listMutatingAdmissionPolicyWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind MutatingAdmissionPolicy\n * @param param the request object\n */\n listMutatingAdmissionPolicy(param = {}, options) {\n return this.api.listMutatingAdmissionPolicy(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind MutatingAdmissionPolicyBinding\n * @param param the request object\n */\n listMutatingAdmissionPolicyBindingWithHttpInfo(param = {}, options) {\n return this.api.listMutatingAdmissionPolicyBindingWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind MutatingAdmissionPolicyBinding\n * @param param the request object\n */\n listMutatingAdmissionPolicyBinding(param = {}, options) {\n return this.api.listMutatingAdmissionPolicyBinding(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified MutatingAdmissionPolicy\n * @param param the request object\n */\n patchMutatingAdmissionPolicyWithHttpInfo(param, options) {\n return this.api.patchMutatingAdmissionPolicyWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified MutatingAdmissionPolicy\n * @param param the request object\n */\n patchMutatingAdmissionPolicy(param, options) {\n return this.api.patchMutatingAdmissionPolicy(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified MutatingAdmissionPolicyBinding\n * @param param the request object\n */\n patchMutatingAdmissionPolicyBindingWithHttpInfo(param, options) {\n return this.api.patchMutatingAdmissionPolicyBindingWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified MutatingAdmissionPolicyBinding\n * @param param the request object\n */\n patchMutatingAdmissionPolicyBinding(param, options) {\n return this.api.patchMutatingAdmissionPolicyBinding(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified MutatingAdmissionPolicy\n * @param param the request object\n */\n readMutatingAdmissionPolicyWithHttpInfo(param, options) {\n return this.api.readMutatingAdmissionPolicyWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified MutatingAdmissionPolicy\n * @param param the request object\n */\n readMutatingAdmissionPolicy(param, options) {\n return this.api.readMutatingAdmissionPolicy(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified MutatingAdmissionPolicyBinding\n * @param param the request object\n */\n readMutatingAdmissionPolicyBindingWithHttpInfo(param, options) {\n return this.api.readMutatingAdmissionPolicyBindingWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified MutatingAdmissionPolicyBinding\n * @param param the request object\n */\n readMutatingAdmissionPolicyBinding(param, options) {\n return this.api.readMutatingAdmissionPolicyBinding(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified MutatingAdmissionPolicy\n * @param param the request object\n */\n replaceMutatingAdmissionPolicyWithHttpInfo(param, options) {\n return this.api.replaceMutatingAdmissionPolicyWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified MutatingAdmissionPolicy\n * @param param the request object\n */\n replaceMutatingAdmissionPolicy(param, options) {\n return this.api.replaceMutatingAdmissionPolicy(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified MutatingAdmissionPolicyBinding\n * @param param the request object\n */\n replaceMutatingAdmissionPolicyBindingWithHttpInfo(param, options) {\n return this.api.replaceMutatingAdmissionPolicyBindingWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified MutatingAdmissionPolicyBinding\n * @param param the request object\n */\n replaceMutatingAdmissionPolicyBinding(param, options) {\n return this.api.replaceMutatingAdmissionPolicyBinding(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableAdmissionregistrationV1beta1Api } from \"./ObservableAPI.js\";\nexport class ObjectAdmissionregistrationV1beta1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableAdmissionregistrationV1beta1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a ValidatingAdmissionPolicy\n * @param param the request object\n */\n createValidatingAdmissionPolicyWithHttpInfo(param, options) {\n return this.api.createValidatingAdmissionPolicyWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ValidatingAdmissionPolicy\n * @param param the request object\n */\n createValidatingAdmissionPolicy(param, options) {\n return this.api.createValidatingAdmissionPolicy(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n createValidatingAdmissionPolicyBindingWithHttpInfo(param, options) {\n return this.api.createValidatingAdmissionPolicyBindingWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n createValidatingAdmissionPolicyBinding(param, options) {\n return this.api.createValidatingAdmissionPolicyBinding(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of ValidatingAdmissionPolicy\n * @param param the request object\n */\n deleteCollectionValidatingAdmissionPolicyWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionValidatingAdmissionPolicyWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ValidatingAdmissionPolicy\n * @param param the request object\n */\n deleteCollectionValidatingAdmissionPolicy(param = {}, options) {\n return this.api.deleteCollectionValidatingAdmissionPolicy(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n deleteCollectionValidatingAdmissionPolicyBindingWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionValidatingAdmissionPolicyBindingWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n deleteCollectionValidatingAdmissionPolicyBinding(param = {}, options) {\n return this.api.deleteCollectionValidatingAdmissionPolicyBinding(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a ValidatingAdmissionPolicy\n * @param param the request object\n */\n deleteValidatingAdmissionPolicyWithHttpInfo(param, options) {\n return this.api.deleteValidatingAdmissionPolicyWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ValidatingAdmissionPolicy\n * @param param the request object\n */\n deleteValidatingAdmissionPolicy(param, options) {\n return this.api.deleteValidatingAdmissionPolicy(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n deleteValidatingAdmissionPolicyBindingWithHttpInfo(param, options) {\n return this.api.deleteValidatingAdmissionPolicyBindingWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n deleteValidatingAdmissionPolicyBinding(param, options) {\n return this.api.deleteValidatingAdmissionPolicyBinding(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind ValidatingAdmissionPolicy\n * @param param the request object\n */\n listValidatingAdmissionPolicyWithHttpInfo(param = {}, options) {\n return this.api.listValidatingAdmissionPolicyWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ValidatingAdmissionPolicy\n * @param param the request object\n */\n listValidatingAdmissionPolicy(param = {}, options) {\n return this.api.listValidatingAdmissionPolicy(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n listValidatingAdmissionPolicyBindingWithHttpInfo(param = {}, options) {\n return this.api.listValidatingAdmissionPolicyBindingWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n listValidatingAdmissionPolicyBinding(param = {}, options) {\n return this.api.listValidatingAdmissionPolicyBinding(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n patchValidatingAdmissionPolicyWithHttpInfo(param, options) {\n return this.api.patchValidatingAdmissionPolicyWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n patchValidatingAdmissionPolicy(param, options) {\n return this.api.patchValidatingAdmissionPolicy(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n patchValidatingAdmissionPolicyBindingWithHttpInfo(param, options) {\n return this.api.patchValidatingAdmissionPolicyBindingWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n patchValidatingAdmissionPolicyBinding(param, options) {\n return this.api.patchValidatingAdmissionPolicyBinding(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n patchValidatingAdmissionPolicyStatusWithHttpInfo(param, options) {\n return this.api.patchValidatingAdmissionPolicyStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n patchValidatingAdmissionPolicyStatus(param, options) {\n return this.api.patchValidatingAdmissionPolicyStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n readValidatingAdmissionPolicyWithHttpInfo(param, options) {\n return this.api.readValidatingAdmissionPolicyWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n readValidatingAdmissionPolicy(param, options) {\n return this.api.readValidatingAdmissionPolicy(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n readValidatingAdmissionPolicyBindingWithHttpInfo(param, options) {\n return this.api.readValidatingAdmissionPolicyBindingWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n readValidatingAdmissionPolicyBinding(param, options) {\n return this.api.readValidatingAdmissionPolicyBinding(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n readValidatingAdmissionPolicyStatusWithHttpInfo(param, options) {\n return this.api.readValidatingAdmissionPolicyStatusWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n readValidatingAdmissionPolicyStatus(param, options) {\n return this.api.readValidatingAdmissionPolicyStatus(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n replaceValidatingAdmissionPolicyWithHttpInfo(param, options) {\n return this.api.replaceValidatingAdmissionPolicyWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n replaceValidatingAdmissionPolicy(param, options) {\n return this.api.replaceValidatingAdmissionPolicy(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n replaceValidatingAdmissionPolicyBindingWithHttpInfo(param, options) {\n return this.api.replaceValidatingAdmissionPolicyBindingWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ValidatingAdmissionPolicyBinding\n * @param param the request object\n */\n replaceValidatingAdmissionPolicyBinding(param, options) {\n return this.api.replaceValidatingAdmissionPolicyBinding(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n replaceValidatingAdmissionPolicyStatusWithHttpInfo(param, options) {\n return this.api.replaceValidatingAdmissionPolicyStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ValidatingAdmissionPolicy\n * @param param the request object\n */\n replaceValidatingAdmissionPolicyStatus(param, options) {\n return this.api.replaceValidatingAdmissionPolicyStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableApiextensionsApi } from \"./ObservableAPI.js\";\nexport class ObjectApiextensionsApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableApiextensionsApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableApiextensionsV1Api } from \"./ObservableAPI.js\";\nexport class ObjectApiextensionsV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableApiextensionsV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a CustomResourceDefinition\n * @param param the request object\n */\n createCustomResourceDefinitionWithHttpInfo(param, options) {\n return this.api.createCustomResourceDefinitionWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a CustomResourceDefinition\n * @param param the request object\n */\n createCustomResourceDefinition(param, options) {\n return this.api.createCustomResourceDefinition(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of CustomResourceDefinition\n * @param param the request object\n */\n deleteCollectionCustomResourceDefinitionWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionCustomResourceDefinitionWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of CustomResourceDefinition\n * @param param the request object\n */\n deleteCollectionCustomResourceDefinition(param = {}, options) {\n return this.api.deleteCollectionCustomResourceDefinition(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a CustomResourceDefinition\n * @param param the request object\n */\n deleteCustomResourceDefinitionWithHttpInfo(param, options) {\n return this.api.deleteCustomResourceDefinitionWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a CustomResourceDefinition\n * @param param the request object\n */\n deleteCustomResourceDefinition(param, options) {\n return this.api.deleteCustomResourceDefinition(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind CustomResourceDefinition\n * @param param the request object\n */\n listCustomResourceDefinitionWithHttpInfo(param = {}, options) {\n return this.api.listCustomResourceDefinitionWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind CustomResourceDefinition\n * @param param the request object\n */\n listCustomResourceDefinition(param = {}, options) {\n return this.api.listCustomResourceDefinition(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified CustomResourceDefinition\n * @param param the request object\n */\n patchCustomResourceDefinitionWithHttpInfo(param, options) {\n return this.api.patchCustomResourceDefinitionWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified CustomResourceDefinition\n * @param param the request object\n */\n patchCustomResourceDefinition(param, options) {\n return this.api.patchCustomResourceDefinition(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified CustomResourceDefinition\n * @param param the request object\n */\n patchCustomResourceDefinitionStatusWithHttpInfo(param, options) {\n return this.api.patchCustomResourceDefinitionStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified CustomResourceDefinition\n * @param param the request object\n */\n patchCustomResourceDefinitionStatus(param, options) {\n return this.api.patchCustomResourceDefinitionStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified CustomResourceDefinition\n * @param param the request object\n */\n readCustomResourceDefinitionWithHttpInfo(param, options) {\n return this.api.readCustomResourceDefinitionWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified CustomResourceDefinition\n * @param param the request object\n */\n readCustomResourceDefinition(param, options) {\n return this.api.readCustomResourceDefinition(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified CustomResourceDefinition\n * @param param the request object\n */\n readCustomResourceDefinitionStatusWithHttpInfo(param, options) {\n return this.api.readCustomResourceDefinitionStatusWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified CustomResourceDefinition\n * @param param the request object\n */\n readCustomResourceDefinitionStatus(param, options) {\n return this.api.readCustomResourceDefinitionStatus(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified CustomResourceDefinition\n * @param param the request object\n */\n replaceCustomResourceDefinitionWithHttpInfo(param, options) {\n return this.api.replaceCustomResourceDefinitionWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified CustomResourceDefinition\n * @param param the request object\n */\n replaceCustomResourceDefinition(param, options) {\n return this.api.replaceCustomResourceDefinition(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified CustomResourceDefinition\n * @param param the request object\n */\n replaceCustomResourceDefinitionStatusWithHttpInfo(param, options) {\n return this.api.replaceCustomResourceDefinitionStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified CustomResourceDefinition\n * @param param the request object\n */\n replaceCustomResourceDefinitionStatus(param, options) {\n return this.api.replaceCustomResourceDefinitionStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableApiregistrationApi } from \"./ObservableAPI.js\";\nexport class ObjectApiregistrationApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableApiregistrationApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableApiregistrationV1Api } from \"./ObservableAPI.js\";\nexport class ObjectApiregistrationV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableApiregistrationV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create an APIService\n * @param param the request object\n */\n createAPIServiceWithHttpInfo(param, options) {\n return this.api.createAPIServiceWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create an APIService\n * @param param the request object\n */\n createAPIService(param, options) {\n return this.api.createAPIService(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete an APIService\n * @param param the request object\n */\n deleteAPIServiceWithHttpInfo(param, options) {\n return this.api.deleteAPIServiceWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete an APIService\n * @param param the request object\n */\n deleteAPIService(param, options) {\n return this.api.deleteAPIService(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete collection of APIService\n * @param param the request object\n */\n deleteCollectionAPIServiceWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionAPIServiceWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of APIService\n * @param param the request object\n */\n deleteCollectionAPIService(param = {}, options) {\n return this.api.deleteCollectionAPIService(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind APIService\n * @param param the request object\n */\n listAPIServiceWithHttpInfo(param = {}, options) {\n return this.api.listAPIServiceWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind APIService\n * @param param the request object\n */\n listAPIService(param = {}, options) {\n return this.api.listAPIService(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified APIService\n * @param param the request object\n */\n patchAPIServiceWithHttpInfo(param, options) {\n return this.api.patchAPIServiceWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified APIService\n * @param param the request object\n */\n patchAPIService(param, options) {\n return this.api.patchAPIService(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified APIService\n * @param param the request object\n */\n patchAPIServiceStatusWithHttpInfo(param, options) {\n return this.api.patchAPIServiceStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified APIService\n * @param param the request object\n */\n patchAPIServiceStatus(param, options) {\n return this.api.patchAPIServiceStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified APIService\n * @param param the request object\n */\n readAPIServiceWithHttpInfo(param, options) {\n return this.api.readAPIServiceWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified APIService\n * @param param the request object\n */\n readAPIService(param, options) {\n return this.api.readAPIService(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified APIService\n * @param param the request object\n */\n readAPIServiceStatusWithHttpInfo(param, options) {\n return this.api.readAPIServiceStatusWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified APIService\n * @param param the request object\n */\n readAPIServiceStatus(param, options) {\n return this.api.readAPIServiceStatus(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified APIService\n * @param param the request object\n */\n replaceAPIServiceWithHttpInfo(param, options) {\n return this.api.replaceAPIServiceWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified APIService\n * @param param the request object\n */\n replaceAPIService(param, options) {\n return this.api.replaceAPIService(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified APIService\n * @param param the request object\n */\n replaceAPIServiceStatusWithHttpInfo(param, options) {\n return this.api.replaceAPIServiceStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified APIService\n * @param param the request object\n */\n replaceAPIServiceStatus(param, options) {\n return this.api.replaceAPIServiceStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableApisApi } from \"./ObservableAPI.js\";\nexport class ObjectApisApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableApisApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get available API versions\n * @param param the request object\n */\n getAPIVersionsWithHttpInfo(param = {}, options) {\n return this.api.getAPIVersionsWithHttpInfo(options).toPromise();\n }\n /**\n * get available API versions\n * @param param the request object\n */\n getAPIVersions(param = {}, options) {\n return this.api.getAPIVersions(options).toPromise();\n }\n}\nimport { ObservableAppsApi } from \"./ObservableAPI.js\";\nexport class ObjectAppsApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableAppsApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableAppsV1Api } from \"./ObservableAPI.js\";\nexport class ObjectAppsV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableAppsV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a ControllerRevision\n * @param param the request object\n */\n createNamespacedControllerRevisionWithHttpInfo(param, options) {\n return this.api.createNamespacedControllerRevisionWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ControllerRevision\n * @param param the request object\n */\n createNamespacedControllerRevision(param, options) {\n return this.api.createNamespacedControllerRevision(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a DaemonSet\n * @param param the request object\n */\n createNamespacedDaemonSetWithHttpInfo(param, options) {\n return this.api.createNamespacedDaemonSetWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a DaemonSet\n * @param param the request object\n */\n createNamespacedDaemonSet(param, options) {\n return this.api.createNamespacedDaemonSet(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a Deployment\n * @param param the request object\n */\n createNamespacedDeploymentWithHttpInfo(param, options) {\n return this.api.createNamespacedDeploymentWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a Deployment\n * @param param the request object\n */\n createNamespacedDeployment(param, options) {\n return this.api.createNamespacedDeployment(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ReplicaSet\n * @param param the request object\n */\n createNamespacedReplicaSetWithHttpInfo(param, options) {\n return this.api.createNamespacedReplicaSetWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ReplicaSet\n * @param param the request object\n */\n createNamespacedReplicaSet(param, options) {\n return this.api.createNamespacedReplicaSet(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a StatefulSet\n * @param param the request object\n */\n createNamespacedStatefulSetWithHttpInfo(param, options) {\n return this.api.createNamespacedStatefulSetWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a StatefulSet\n * @param param the request object\n */\n createNamespacedStatefulSet(param, options) {\n return this.api.createNamespacedStatefulSet(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of ControllerRevision\n * @param param the request object\n */\n deleteCollectionNamespacedControllerRevisionWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedControllerRevisionWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ControllerRevision\n * @param param the request object\n */\n deleteCollectionNamespacedControllerRevision(param, options) {\n return this.api.deleteCollectionNamespacedControllerRevision(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of DaemonSet\n * @param param the request object\n */\n deleteCollectionNamespacedDaemonSetWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedDaemonSetWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of DaemonSet\n * @param param the request object\n */\n deleteCollectionNamespacedDaemonSet(param, options) {\n return this.api.deleteCollectionNamespacedDaemonSet(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Deployment\n * @param param the request object\n */\n deleteCollectionNamespacedDeploymentWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedDeploymentWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Deployment\n * @param param the request object\n */\n deleteCollectionNamespacedDeployment(param, options) {\n return this.api.deleteCollectionNamespacedDeployment(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ReplicaSet\n * @param param the request object\n */\n deleteCollectionNamespacedReplicaSetWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedReplicaSetWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ReplicaSet\n * @param param the request object\n */\n deleteCollectionNamespacedReplicaSet(param, options) {\n return this.api.deleteCollectionNamespacedReplicaSet(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of StatefulSet\n * @param param the request object\n */\n deleteCollectionNamespacedStatefulSetWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedStatefulSetWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of StatefulSet\n * @param param the request object\n */\n deleteCollectionNamespacedStatefulSet(param, options) {\n return this.api.deleteCollectionNamespacedStatefulSet(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a ControllerRevision\n * @param param the request object\n */\n deleteNamespacedControllerRevisionWithHttpInfo(param, options) {\n return this.api.deleteNamespacedControllerRevisionWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ControllerRevision\n * @param param the request object\n */\n deleteNamespacedControllerRevision(param, options) {\n return this.api.deleteNamespacedControllerRevision(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a DaemonSet\n * @param param the request object\n */\n deleteNamespacedDaemonSetWithHttpInfo(param, options) {\n return this.api.deleteNamespacedDaemonSetWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a DaemonSet\n * @param param the request object\n */\n deleteNamespacedDaemonSet(param, options) {\n return this.api.deleteNamespacedDaemonSet(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a Deployment\n * @param param the request object\n */\n deleteNamespacedDeploymentWithHttpInfo(param, options) {\n return this.api.deleteNamespacedDeploymentWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a Deployment\n * @param param the request object\n */\n deleteNamespacedDeployment(param, options) {\n return this.api.deleteNamespacedDeployment(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ReplicaSet\n * @param param the request object\n */\n deleteNamespacedReplicaSetWithHttpInfo(param, options) {\n return this.api.deleteNamespacedReplicaSetWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ReplicaSet\n * @param param the request object\n */\n deleteNamespacedReplicaSet(param, options) {\n return this.api.deleteNamespacedReplicaSet(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a StatefulSet\n * @param param the request object\n */\n deleteNamespacedStatefulSetWithHttpInfo(param, options) {\n return this.api.deleteNamespacedStatefulSetWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a StatefulSet\n * @param param the request object\n */\n deleteNamespacedStatefulSet(param, options) {\n return this.api.deleteNamespacedStatefulSet(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind ControllerRevision\n * @param param the request object\n */\n listControllerRevisionForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listControllerRevisionForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ControllerRevision\n * @param param the request object\n */\n listControllerRevisionForAllNamespaces(param = {}, options) {\n return this.api.listControllerRevisionForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind DaemonSet\n * @param param the request object\n */\n listDaemonSetForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listDaemonSetForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind DaemonSet\n * @param param the request object\n */\n listDaemonSetForAllNamespaces(param = {}, options) {\n return this.api.listDaemonSetForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Deployment\n * @param param the request object\n */\n listDeploymentForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listDeploymentForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Deployment\n * @param param the request object\n */\n listDeploymentForAllNamespaces(param = {}, options) {\n return this.api.listDeploymentForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ControllerRevision\n * @param param the request object\n */\n listNamespacedControllerRevisionWithHttpInfo(param, options) {\n return this.api.listNamespacedControllerRevisionWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ControllerRevision\n * @param param the request object\n */\n listNamespacedControllerRevision(param, options) {\n return this.api.listNamespacedControllerRevision(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind DaemonSet\n * @param param the request object\n */\n listNamespacedDaemonSetWithHttpInfo(param, options) {\n return this.api.listNamespacedDaemonSetWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind DaemonSet\n * @param param the request object\n */\n listNamespacedDaemonSet(param, options) {\n return this.api.listNamespacedDaemonSet(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Deployment\n * @param param the request object\n */\n listNamespacedDeploymentWithHttpInfo(param, options) {\n return this.api.listNamespacedDeploymentWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Deployment\n * @param param the request object\n */\n listNamespacedDeployment(param, options) {\n return this.api.listNamespacedDeployment(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ReplicaSet\n * @param param the request object\n */\n listNamespacedReplicaSetWithHttpInfo(param, options) {\n return this.api.listNamespacedReplicaSetWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ReplicaSet\n * @param param the request object\n */\n listNamespacedReplicaSet(param, options) {\n return this.api.listNamespacedReplicaSet(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind StatefulSet\n * @param param the request object\n */\n listNamespacedStatefulSetWithHttpInfo(param, options) {\n return this.api.listNamespacedStatefulSetWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind StatefulSet\n * @param param the request object\n */\n listNamespacedStatefulSet(param, options) {\n return this.api.listNamespacedStatefulSet(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ReplicaSet\n * @param param the request object\n */\n listReplicaSetForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listReplicaSetForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ReplicaSet\n * @param param the request object\n */\n listReplicaSetForAllNamespaces(param = {}, options) {\n return this.api.listReplicaSetForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind StatefulSet\n * @param param the request object\n */\n listStatefulSetForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listStatefulSetForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind StatefulSet\n * @param param the request object\n */\n listStatefulSetForAllNamespaces(param = {}, options) {\n return this.api.listStatefulSetForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified ControllerRevision\n * @param param the request object\n */\n patchNamespacedControllerRevisionWithHttpInfo(param, options) {\n return this.api.patchNamespacedControllerRevisionWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ControllerRevision\n * @param param the request object\n */\n patchNamespacedControllerRevision(param, options) {\n return this.api.patchNamespacedControllerRevision(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified DaemonSet\n * @param param the request object\n */\n patchNamespacedDaemonSetWithHttpInfo(param, options) {\n return this.api.patchNamespacedDaemonSetWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified DaemonSet\n * @param param the request object\n */\n patchNamespacedDaemonSet(param, options) {\n return this.api.patchNamespacedDaemonSet(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified DaemonSet\n * @param param the request object\n */\n patchNamespacedDaemonSetStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedDaemonSetStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified DaemonSet\n * @param param the request object\n */\n patchNamespacedDaemonSetStatus(param, options) {\n return this.api.patchNamespacedDaemonSetStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Deployment\n * @param param the request object\n */\n patchNamespacedDeploymentWithHttpInfo(param, options) {\n return this.api.patchNamespacedDeploymentWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Deployment\n * @param param the request object\n */\n patchNamespacedDeployment(param, options) {\n return this.api.patchNamespacedDeployment(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update scale of the specified Deployment\n * @param param the request object\n */\n patchNamespacedDeploymentScaleWithHttpInfo(param, options) {\n return this.api.patchNamespacedDeploymentScaleWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update scale of the specified Deployment\n * @param param the request object\n */\n patchNamespacedDeploymentScale(param, options) {\n return this.api.patchNamespacedDeploymentScale(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified Deployment\n * @param param the request object\n */\n patchNamespacedDeploymentStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedDeploymentStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified Deployment\n * @param param the request object\n */\n patchNamespacedDeploymentStatus(param, options) {\n return this.api.patchNamespacedDeploymentStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ReplicaSet\n * @param param the request object\n */\n patchNamespacedReplicaSetWithHttpInfo(param, options) {\n return this.api.patchNamespacedReplicaSetWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ReplicaSet\n * @param param the request object\n */\n patchNamespacedReplicaSet(param, options) {\n return this.api.patchNamespacedReplicaSet(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update scale of the specified ReplicaSet\n * @param param the request object\n */\n patchNamespacedReplicaSetScaleWithHttpInfo(param, options) {\n return this.api.patchNamespacedReplicaSetScaleWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update scale of the specified ReplicaSet\n * @param param the request object\n */\n patchNamespacedReplicaSetScale(param, options) {\n return this.api.patchNamespacedReplicaSetScale(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ReplicaSet\n * @param param the request object\n */\n patchNamespacedReplicaSetStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedReplicaSetStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ReplicaSet\n * @param param the request object\n */\n patchNamespacedReplicaSetStatus(param, options) {\n return this.api.patchNamespacedReplicaSetStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified StatefulSet\n * @param param the request object\n */\n patchNamespacedStatefulSetWithHttpInfo(param, options) {\n return this.api.patchNamespacedStatefulSetWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified StatefulSet\n * @param param the request object\n */\n patchNamespacedStatefulSet(param, options) {\n return this.api.patchNamespacedStatefulSet(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update scale of the specified StatefulSet\n * @param param the request object\n */\n patchNamespacedStatefulSetScaleWithHttpInfo(param, options) {\n return this.api.patchNamespacedStatefulSetScaleWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update scale of the specified StatefulSet\n * @param param the request object\n */\n patchNamespacedStatefulSetScale(param, options) {\n return this.api.patchNamespacedStatefulSetScale(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified StatefulSet\n * @param param the request object\n */\n patchNamespacedStatefulSetStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedStatefulSetStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified StatefulSet\n * @param param the request object\n */\n patchNamespacedStatefulSetStatus(param, options) {\n return this.api.patchNamespacedStatefulSetStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified ControllerRevision\n * @param param the request object\n */\n readNamespacedControllerRevisionWithHttpInfo(param, options) {\n return this.api.readNamespacedControllerRevisionWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ControllerRevision\n * @param param the request object\n */\n readNamespacedControllerRevision(param, options) {\n return this.api.readNamespacedControllerRevision(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified DaemonSet\n * @param param the request object\n */\n readNamespacedDaemonSetWithHttpInfo(param, options) {\n return this.api.readNamespacedDaemonSetWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified DaemonSet\n * @param param the request object\n */\n readNamespacedDaemonSet(param, options) {\n return this.api.readNamespacedDaemonSet(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified DaemonSet\n * @param param the request object\n */\n readNamespacedDaemonSetStatusWithHttpInfo(param, options) {\n return this.api.readNamespacedDaemonSetStatusWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified DaemonSet\n * @param param the request object\n */\n readNamespacedDaemonSetStatus(param, options) {\n return this.api.readNamespacedDaemonSetStatus(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Deployment\n * @param param the request object\n */\n readNamespacedDeploymentWithHttpInfo(param, options) {\n return this.api.readNamespacedDeploymentWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Deployment\n * @param param the request object\n */\n readNamespacedDeployment(param, options) {\n return this.api.readNamespacedDeployment(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read scale of the specified Deployment\n * @param param the request object\n */\n readNamespacedDeploymentScaleWithHttpInfo(param, options) {\n return this.api.readNamespacedDeploymentScaleWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read scale of the specified Deployment\n * @param param the request object\n */\n readNamespacedDeploymentScale(param, options) {\n return this.api.readNamespacedDeploymentScale(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified Deployment\n * @param param the request object\n */\n readNamespacedDeploymentStatusWithHttpInfo(param, options) {\n return this.api.readNamespacedDeploymentStatusWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified Deployment\n * @param param the request object\n */\n readNamespacedDeploymentStatus(param, options) {\n return this.api.readNamespacedDeploymentStatus(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ReplicaSet\n * @param param the request object\n */\n readNamespacedReplicaSetWithHttpInfo(param, options) {\n return this.api.readNamespacedReplicaSetWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ReplicaSet\n * @param param the request object\n */\n readNamespacedReplicaSet(param, options) {\n return this.api.readNamespacedReplicaSet(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read scale of the specified ReplicaSet\n * @param param the request object\n */\n readNamespacedReplicaSetScaleWithHttpInfo(param, options) {\n return this.api.readNamespacedReplicaSetScaleWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read scale of the specified ReplicaSet\n * @param param the request object\n */\n readNamespacedReplicaSetScale(param, options) {\n return this.api.readNamespacedReplicaSetScale(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ReplicaSet\n * @param param the request object\n */\n readNamespacedReplicaSetStatusWithHttpInfo(param, options) {\n return this.api.readNamespacedReplicaSetStatusWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ReplicaSet\n * @param param the request object\n */\n readNamespacedReplicaSetStatus(param, options) {\n return this.api.readNamespacedReplicaSetStatus(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified StatefulSet\n * @param param the request object\n */\n readNamespacedStatefulSetWithHttpInfo(param, options) {\n return this.api.readNamespacedStatefulSetWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified StatefulSet\n * @param param the request object\n */\n readNamespacedStatefulSet(param, options) {\n return this.api.readNamespacedStatefulSet(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read scale of the specified StatefulSet\n * @param param the request object\n */\n readNamespacedStatefulSetScaleWithHttpInfo(param, options) {\n return this.api.readNamespacedStatefulSetScaleWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read scale of the specified StatefulSet\n * @param param the request object\n */\n readNamespacedStatefulSetScale(param, options) {\n return this.api.readNamespacedStatefulSetScale(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified StatefulSet\n * @param param the request object\n */\n readNamespacedStatefulSetStatusWithHttpInfo(param, options) {\n return this.api.readNamespacedStatefulSetStatusWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified StatefulSet\n * @param param the request object\n */\n readNamespacedStatefulSetStatus(param, options) {\n return this.api.readNamespacedStatefulSetStatus(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * replace the specified ControllerRevision\n * @param param the request object\n */\n replaceNamespacedControllerRevisionWithHttpInfo(param, options) {\n return this.api.replaceNamespacedControllerRevisionWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ControllerRevision\n * @param param the request object\n */\n replaceNamespacedControllerRevision(param, options) {\n return this.api.replaceNamespacedControllerRevision(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified DaemonSet\n * @param param the request object\n */\n replaceNamespacedDaemonSetWithHttpInfo(param, options) {\n return this.api.replaceNamespacedDaemonSetWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified DaemonSet\n * @param param the request object\n */\n replaceNamespacedDaemonSet(param, options) {\n return this.api.replaceNamespacedDaemonSet(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified DaemonSet\n * @param param the request object\n */\n replaceNamespacedDaemonSetStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedDaemonSetStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified DaemonSet\n * @param param the request object\n */\n replaceNamespacedDaemonSetStatus(param, options) {\n return this.api.replaceNamespacedDaemonSetStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Deployment\n * @param param the request object\n */\n replaceNamespacedDeploymentWithHttpInfo(param, options) {\n return this.api.replaceNamespacedDeploymentWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Deployment\n * @param param the request object\n */\n replaceNamespacedDeployment(param, options) {\n return this.api.replaceNamespacedDeployment(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace scale of the specified Deployment\n * @param param the request object\n */\n replaceNamespacedDeploymentScaleWithHttpInfo(param, options) {\n return this.api.replaceNamespacedDeploymentScaleWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace scale of the specified Deployment\n * @param param the request object\n */\n replaceNamespacedDeploymentScale(param, options) {\n return this.api.replaceNamespacedDeploymentScale(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified Deployment\n * @param param the request object\n */\n replaceNamespacedDeploymentStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedDeploymentStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified Deployment\n * @param param the request object\n */\n replaceNamespacedDeploymentStatus(param, options) {\n return this.api.replaceNamespacedDeploymentStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ReplicaSet\n * @param param the request object\n */\n replaceNamespacedReplicaSetWithHttpInfo(param, options) {\n return this.api.replaceNamespacedReplicaSetWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ReplicaSet\n * @param param the request object\n */\n replaceNamespacedReplicaSet(param, options) {\n return this.api.replaceNamespacedReplicaSet(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace scale of the specified ReplicaSet\n * @param param the request object\n */\n replaceNamespacedReplicaSetScaleWithHttpInfo(param, options) {\n return this.api.replaceNamespacedReplicaSetScaleWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace scale of the specified ReplicaSet\n * @param param the request object\n */\n replaceNamespacedReplicaSetScale(param, options) {\n return this.api.replaceNamespacedReplicaSetScale(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ReplicaSet\n * @param param the request object\n */\n replaceNamespacedReplicaSetStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedReplicaSetStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ReplicaSet\n * @param param the request object\n */\n replaceNamespacedReplicaSetStatus(param, options) {\n return this.api.replaceNamespacedReplicaSetStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified StatefulSet\n * @param param the request object\n */\n replaceNamespacedStatefulSetWithHttpInfo(param, options) {\n return this.api.replaceNamespacedStatefulSetWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified StatefulSet\n * @param param the request object\n */\n replaceNamespacedStatefulSet(param, options) {\n return this.api.replaceNamespacedStatefulSet(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace scale of the specified StatefulSet\n * @param param the request object\n */\n replaceNamespacedStatefulSetScaleWithHttpInfo(param, options) {\n return this.api.replaceNamespacedStatefulSetScaleWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace scale of the specified StatefulSet\n * @param param the request object\n */\n replaceNamespacedStatefulSetScale(param, options) {\n return this.api.replaceNamespacedStatefulSetScale(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified StatefulSet\n * @param param the request object\n */\n replaceNamespacedStatefulSetStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedStatefulSetStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified StatefulSet\n * @param param the request object\n */\n replaceNamespacedStatefulSetStatus(param, options) {\n return this.api.replaceNamespacedStatefulSetStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableAuthenticationApi } from \"./ObservableAPI.js\";\nexport class ObjectAuthenticationApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableAuthenticationApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableAuthenticationV1Api } from \"./ObservableAPI.js\";\nexport class ObjectAuthenticationV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableAuthenticationV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a SelfSubjectReview\n * @param param the request object\n */\n createSelfSubjectReviewWithHttpInfo(param, options) {\n return this.api.createSelfSubjectReviewWithHttpInfo(param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * create a SelfSubjectReview\n * @param param the request object\n */\n createSelfSubjectReview(param, options) {\n return this.api.createSelfSubjectReview(param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * create a TokenReview\n * @param param the request object\n */\n createTokenReviewWithHttpInfo(param, options) {\n return this.api.createTokenReviewWithHttpInfo(param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * create a TokenReview\n * @param param the request object\n */\n createTokenReview(param, options) {\n return this.api.createTokenReview(param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n}\nimport { ObservableAuthorizationApi } from \"./ObservableAPI.js\";\nexport class ObjectAuthorizationApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableAuthorizationApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableAuthorizationV1Api } from \"./ObservableAPI.js\";\nexport class ObjectAuthorizationV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableAuthorizationV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a LocalSubjectAccessReview\n * @param param the request object\n */\n createNamespacedLocalSubjectAccessReviewWithHttpInfo(param, options) {\n return this.api.createNamespacedLocalSubjectAccessReviewWithHttpInfo(param.namespace, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * create a LocalSubjectAccessReview\n * @param param the request object\n */\n createNamespacedLocalSubjectAccessReview(param, options) {\n return this.api.createNamespacedLocalSubjectAccessReview(param.namespace, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * create a SelfSubjectAccessReview\n * @param param the request object\n */\n createSelfSubjectAccessReviewWithHttpInfo(param, options) {\n return this.api.createSelfSubjectAccessReviewWithHttpInfo(param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * create a SelfSubjectAccessReview\n * @param param the request object\n */\n createSelfSubjectAccessReview(param, options) {\n return this.api.createSelfSubjectAccessReview(param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * create a SelfSubjectRulesReview\n * @param param the request object\n */\n createSelfSubjectRulesReviewWithHttpInfo(param, options) {\n return this.api.createSelfSubjectRulesReviewWithHttpInfo(param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * create a SelfSubjectRulesReview\n * @param param the request object\n */\n createSelfSubjectRulesReview(param, options) {\n return this.api.createSelfSubjectRulesReview(param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * create a SubjectAccessReview\n * @param param the request object\n */\n createSubjectAccessReviewWithHttpInfo(param, options) {\n return this.api.createSubjectAccessReviewWithHttpInfo(param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * create a SubjectAccessReview\n * @param param the request object\n */\n createSubjectAccessReview(param, options) {\n return this.api.createSubjectAccessReview(param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n}\nimport { ObservableAutoscalingApi } from \"./ObservableAPI.js\";\nexport class ObjectAutoscalingApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableAutoscalingApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableAutoscalingV1Api } from \"./ObservableAPI.js\";\nexport class ObjectAutoscalingV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableAutoscalingV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a HorizontalPodAutoscaler\n * @param param the request object\n */\n createNamespacedHorizontalPodAutoscalerWithHttpInfo(param, options) {\n return this.api.createNamespacedHorizontalPodAutoscalerWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a HorizontalPodAutoscaler\n * @param param the request object\n */\n createNamespacedHorizontalPodAutoscaler(param, options) {\n return this.api.createNamespacedHorizontalPodAutoscaler(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of HorizontalPodAutoscaler\n * @param param the request object\n */\n deleteCollectionNamespacedHorizontalPodAutoscalerWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedHorizontalPodAutoscalerWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of HorizontalPodAutoscaler\n * @param param the request object\n */\n deleteCollectionNamespacedHorizontalPodAutoscaler(param, options) {\n return this.api.deleteCollectionNamespacedHorizontalPodAutoscaler(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a HorizontalPodAutoscaler\n * @param param the request object\n */\n deleteNamespacedHorizontalPodAutoscalerWithHttpInfo(param, options) {\n return this.api.deleteNamespacedHorizontalPodAutoscalerWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a HorizontalPodAutoscaler\n * @param param the request object\n */\n deleteNamespacedHorizontalPodAutoscaler(param, options) {\n return this.api.deleteNamespacedHorizontalPodAutoscaler(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind HorizontalPodAutoscaler\n * @param param the request object\n */\n listHorizontalPodAutoscalerForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listHorizontalPodAutoscalerForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind HorizontalPodAutoscaler\n * @param param the request object\n */\n listHorizontalPodAutoscalerForAllNamespaces(param = {}, options) {\n return this.api.listHorizontalPodAutoscalerForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind HorizontalPodAutoscaler\n * @param param the request object\n */\n listNamespacedHorizontalPodAutoscalerWithHttpInfo(param, options) {\n return this.api.listNamespacedHorizontalPodAutoscalerWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind HorizontalPodAutoscaler\n * @param param the request object\n */\n listNamespacedHorizontalPodAutoscaler(param, options) {\n return this.api.listNamespacedHorizontalPodAutoscaler(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n patchNamespacedHorizontalPodAutoscalerWithHttpInfo(param, options) {\n return this.api.patchNamespacedHorizontalPodAutoscalerWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n patchNamespacedHorizontalPodAutoscaler(param, options) {\n return this.api.patchNamespacedHorizontalPodAutoscaler(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n patchNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n patchNamespacedHorizontalPodAutoscalerStatus(param, options) {\n return this.api.patchNamespacedHorizontalPodAutoscalerStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n readNamespacedHorizontalPodAutoscalerWithHttpInfo(param, options) {\n return this.api.readNamespacedHorizontalPodAutoscalerWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n readNamespacedHorizontalPodAutoscaler(param, options) {\n return this.api.readNamespacedHorizontalPodAutoscaler(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n readNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(param, options) {\n return this.api.readNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n readNamespacedHorizontalPodAutoscalerStatus(param, options) {\n return this.api.readNamespacedHorizontalPodAutoscalerStatus(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * replace the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n replaceNamespacedHorizontalPodAutoscalerWithHttpInfo(param, options) {\n return this.api.replaceNamespacedHorizontalPodAutoscalerWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n replaceNamespacedHorizontalPodAutoscaler(param, options) {\n return this.api.replaceNamespacedHorizontalPodAutoscaler(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n replaceNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n replaceNamespacedHorizontalPodAutoscalerStatus(param, options) {\n return this.api.replaceNamespacedHorizontalPodAutoscalerStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableAutoscalingV2Api } from \"./ObservableAPI.js\";\nexport class ObjectAutoscalingV2Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableAutoscalingV2Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a HorizontalPodAutoscaler\n * @param param the request object\n */\n createNamespacedHorizontalPodAutoscalerWithHttpInfo(param, options) {\n return this.api.createNamespacedHorizontalPodAutoscalerWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a HorizontalPodAutoscaler\n * @param param the request object\n */\n createNamespacedHorizontalPodAutoscaler(param, options) {\n return this.api.createNamespacedHorizontalPodAutoscaler(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of HorizontalPodAutoscaler\n * @param param the request object\n */\n deleteCollectionNamespacedHorizontalPodAutoscalerWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedHorizontalPodAutoscalerWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of HorizontalPodAutoscaler\n * @param param the request object\n */\n deleteCollectionNamespacedHorizontalPodAutoscaler(param, options) {\n return this.api.deleteCollectionNamespacedHorizontalPodAutoscaler(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a HorizontalPodAutoscaler\n * @param param the request object\n */\n deleteNamespacedHorizontalPodAutoscalerWithHttpInfo(param, options) {\n return this.api.deleteNamespacedHorizontalPodAutoscalerWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a HorizontalPodAutoscaler\n * @param param the request object\n */\n deleteNamespacedHorizontalPodAutoscaler(param, options) {\n return this.api.deleteNamespacedHorizontalPodAutoscaler(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind HorizontalPodAutoscaler\n * @param param the request object\n */\n listHorizontalPodAutoscalerForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listHorizontalPodAutoscalerForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind HorizontalPodAutoscaler\n * @param param the request object\n */\n listHorizontalPodAutoscalerForAllNamespaces(param = {}, options) {\n return this.api.listHorizontalPodAutoscalerForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind HorizontalPodAutoscaler\n * @param param the request object\n */\n listNamespacedHorizontalPodAutoscalerWithHttpInfo(param, options) {\n return this.api.listNamespacedHorizontalPodAutoscalerWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind HorizontalPodAutoscaler\n * @param param the request object\n */\n listNamespacedHorizontalPodAutoscaler(param, options) {\n return this.api.listNamespacedHorizontalPodAutoscaler(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n patchNamespacedHorizontalPodAutoscalerWithHttpInfo(param, options) {\n return this.api.patchNamespacedHorizontalPodAutoscalerWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n patchNamespacedHorizontalPodAutoscaler(param, options) {\n return this.api.patchNamespacedHorizontalPodAutoscaler(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n patchNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n patchNamespacedHorizontalPodAutoscalerStatus(param, options) {\n return this.api.patchNamespacedHorizontalPodAutoscalerStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n readNamespacedHorizontalPodAutoscalerWithHttpInfo(param, options) {\n return this.api.readNamespacedHorizontalPodAutoscalerWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n readNamespacedHorizontalPodAutoscaler(param, options) {\n return this.api.readNamespacedHorizontalPodAutoscaler(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n readNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(param, options) {\n return this.api.readNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n readNamespacedHorizontalPodAutoscalerStatus(param, options) {\n return this.api.readNamespacedHorizontalPodAutoscalerStatus(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * replace the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n replaceNamespacedHorizontalPodAutoscalerWithHttpInfo(param, options) {\n return this.api.replaceNamespacedHorizontalPodAutoscalerWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n replaceNamespacedHorizontalPodAutoscaler(param, options) {\n return this.api.replaceNamespacedHorizontalPodAutoscaler(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n replaceNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedHorizontalPodAutoscalerStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified HorizontalPodAutoscaler\n * @param param the request object\n */\n replaceNamespacedHorizontalPodAutoscalerStatus(param, options) {\n return this.api.replaceNamespacedHorizontalPodAutoscalerStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableBatchApi } from \"./ObservableAPI.js\";\nexport class ObjectBatchApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableBatchApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableBatchV1Api } from \"./ObservableAPI.js\";\nexport class ObjectBatchV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableBatchV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a CronJob\n * @param param the request object\n */\n createNamespacedCronJobWithHttpInfo(param, options) {\n return this.api.createNamespacedCronJobWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a CronJob\n * @param param the request object\n */\n createNamespacedCronJob(param, options) {\n return this.api.createNamespacedCronJob(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a Job\n * @param param the request object\n */\n createNamespacedJobWithHttpInfo(param, options) {\n return this.api.createNamespacedJobWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a Job\n * @param param the request object\n */\n createNamespacedJob(param, options) {\n return this.api.createNamespacedJob(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of CronJob\n * @param param the request object\n */\n deleteCollectionNamespacedCronJobWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedCronJobWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of CronJob\n * @param param the request object\n */\n deleteCollectionNamespacedCronJob(param, options) {\n return this.api.deleteCollectionNamespacedCronJob(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Job\n * @param param the request object\n */\n deleteCollectionNamespacedJobWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedJobWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Job\n * @param param the request object\n */\n deleteCollectionNamespacedJob(param, options) {\n return this.api.deleteCollectionNamespacedJob(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a CronJob\n * @param param the request object\n */\n deleteNamespacedCronJobWithHttpInfo(param, options) {\n return this.api.deleteNamespacedCronJobWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a CronJob\n * @param param the request object\n */\n deleteNamespacedCronJob(param, options) {\n return this.api.deleteNamespacedCronJob(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a Job\n * @param param the request object\n */\n deleteNamespacedJobWithHttpInfo(param, options) {\n return this.api.deleteNamespacedJobWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a Job\n * @param param the request object\n */\n deleteNamespacedJob(param, options) {\n return this.api.deleteNamespacedJob(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind CronJob\n * @param param the request object\n */\n listCronJobForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listCronJobForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind CronJob\n * @param param the request object\n */\n listCronJobForAllNamespaces(param = {}, options) {\n return this.api.listCronJobForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Job\n * @param param the request object\n */\n listJobForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listJobForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Job\n * @param param the request object\n */\n listJobForAllNamespaces(param = {}, options) {\n return this.api.listJobForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind CronJob\n * @param param the request object\n */\n listNamespacedCronJobWithHttpInfo(param, options) {\n return this.api.listNamespacedCronJobWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind CronJob\n * @param param the request object\n */\n listNamespacedCronJob(param, options) {\n return this.api.listNamespacedCronJob(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Job\n * @param param the request object\n */\n listNamespacedJobWithHttpInfo(param, options) {\n return this.api.listNamespacedJobWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Job\n * @param param the request object\n */\n listNamespacedJob(param, options) {\n return this.api.listNamespacedJob(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified CronJob\n * @param param the request object\n */\n patchNamespacedCronJobWithHttpInfo(param, options) {\n return this.api.patchNamespacedCronJobWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified CronJob\n * @param param the request object\n */\n patchNamespacedCronJob(param, options) {\n return this.api.patchNamespacedCronJob(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified CronJob\n * @param param the request object\n */\n patchNamespacedCronJobStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedCronJobStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified CronJob\n * @param param the request object\n */\n patchNamespacedCronJobStatus(param, options) {\n return this.api.patchNamespacedCronJobStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Job\n * @param param the request object\n */\n patchNamespacedJobWithHttpInfo(param, options) {\n return this.api.patchNamespacedJobWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Job\n * @param param the request object\n */\n patchNamespacedJob(param, options) {\n return this.api.patchNamespacedJob(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified Job\n * @param param the request object\n */\n patchNamespacedJobStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedJobStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified Job\n * @param param the request object\n */\n patchNamespacedJobStatus(param, options) {\n return this.api.patchNamespacedJobStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified CronJob\n * @param param the request object\n */\n readNamespacedCronJobWithHttpInfo(param, options) {\n return this.api.readNamespacedCronJobWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified CronJob\n * @param param the request object\n */\n readNamespacedCronJob(param, options) {\n return this.api.readNamespacedCronJob(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified CronJob\n * @param param the request object\n */\n readNamespacedCronJobStatusWithHttpInfo(param, options) {\n return this.api.readNamespacedCronJobStatusWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified CronJob\n * @param param the request object\n */\n readNamespacedCronJobStatus(param, options) {\n return this.api.readNamespacedCronJobStatus(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Job\n * @param param the request object\n */\n readNamespacedJobWithHttpInfo(param, options) {\n return this.api.readNamespacedJobWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Job\n * @param param the request object\n */\n readNamespacedJob(param, options) {\n return this.api.readNamespacedJob(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified Job\n * @param param the request object\n */\n readNamespacedJobStatusWithHttpInfo(param, options) {\n return this.api.readNamespacedJobStatusWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified Job\n * @param param the request object\n */\n readNamespacedJobStatus(param, options) {\n return this.api.readNamespacedJobStatus(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * replace the specified CronJob\n * @param param the request object\n */\n replaceNamespacedCronJobWithHttpInfo(param, options) {\n return this.api.replaceNamespacedCronJobWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified CronJob\n * @param param the request object\n */\n replaceNamespacedCronJob(param, options) {\n return this.api.replaceNamespacedCronJob(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified CronJob\n * @param param the request object\n */\n replaceNamespacedCronJobStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedCronJobStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified CronJob\n * @param param the request object\n */\n replaceNamespacedCronJobStatus(param, options) {\n return this.api.replaceNamespacedCronJobStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Job\n * @param param the request object\n */\n replaceNamespacedJobWithHttpInfo(param, options) {\n return this.api.replaceNamespacedJobWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Job\n * @param param the request object\n */\n replaceNamespacedJob(param, options) {\n return this.api.replaceNamespacedJob(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified Job\n * @param param the request object\n */\n replaceNamespacedJobStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedJobStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified Job\n * @param param the request object\n */\n replaceNamespacedJobStatus(param, options) {\n return this.api.replaceNamespacedJobStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableCertificatesApi } from \"./ObservableAPI.js\";\nexport class ObjectCertificatesApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableCertificatesApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableCertificatesV1Api } from \"./ObservableAPI.js\";\nexport class ObjectCertificatesV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableCertificatesV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a CertificateSigningRequest\n * @param param the request object\n */\n createCertificateSigningRequestWithHttpInfo(param, options) {\n return this.api.createCertificateSigningRequestWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a CertificateSigningRequest\n * @param param the request object\n */\n createCertificateSigningRequest(param, options) {\n return this.api.createCertificateSigningRequest(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete a CertificateSigningRequest\n * @param param the request object\n */\n deleteCertificateSigningRequestWithHttpInfo(param, options) {\n return this.api.deleteCertificateSigningRequestWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a CertificateSigningRequest\n * @param param the request object\n */\n deleteCertificateSigningRequest(param, options) {\n return this.api.deleteCertificateSigningRequest(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete collection of CertificateSigningRequest\n * @param param the request object\n */\n deleteCollectionCertificateSigningRequestWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionCertificateSigningRequestWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of CertificateSigningRequest\n * @param param the request object\n */\n deleteCollectionCertificateSigningRequest(param = {}, options) {\n return this.api.deleteCollectionCertificateSigningRequest(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind CertificateSigningRequest\n * @param param the request object\n */\n listCertificateSigningRequestWithHttpInfo(param = {}, options) {\n return this.api.listCertificateSigningRequestWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind CertificateSigningRequest\n * @param param the request object\n */\n listCertificateSigningRequest(param = {}, options) {\n return this.api.listCertificateSigningRequest(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified CertificateSigningRequest\n * @param param the request object\n */\n patchCertificateSigningRequestWithHttpInfo(param, options) {\n return this.api.patchCertificateSigningRequestWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified CertificateSigningRequest\n * @param param the request object\n */\n patchCertificateSigningRequest(param, options) {\n return this.api.patchCertificateSigningRequest(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update approval of the specified CertificateSigningRequest\n * @param param the request object\n */\n patchCertificateSigningRequestApprovalWithHttpInfo(param, options) {\n return this.api.patchCertificateSigningRequestApprovalWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update approval of the specified CertificateSigningRequest\n * @param param the request object\n */\n patchCertificateSigningRequestApproval(param, options) {\n return this.api.patchCertificateSigningRequestApproval(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified CertificateSigningRequest\n * @param param the request object\n */\n patchCertificateSigningRequestStatusWithHttpInfo(param, options) {\n return this.api.patchCertificateSigningRequestStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified CertificateSigningRequest\n * @param param the request object\n */\n patchCertificateSigningRequestStatus(param, options) {\n return this.api.patchCertificateSigningRequestStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified CertificateSigningRequest\n * @param param the request object\n */\n readCertificateSigningRequestWithHttpInfo(param, options) {\n return this.api.readCertificateSigningRequestWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified CertificateSigningRequest\n * @param param the request object\n */\n readCertificateSigningRequest(param, options) {\n return this.api.readCertificateSigningRequest(param.name, param.pretty, options).toPromise();\n }\n /**\n * read approval of the specified CertificateSigningRequest\n * @param param the request object\n */\n readCertificateSigningRequestApprovalWithHttpInfo(param, options) {\n return this.api.readCertificateSigningRequestApprovalWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read approval of the specified CertificateSigningRequest\n * @param param the request object\n */\n readCertificateSigningRequestApproval(param, options) {\n return this.api.readCertificateSigningRequestApproval(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified CertificateSigningRequest\n * @param param the request object\n */\n readCertificateSigningRequestStatusWithHttpInfo(param, options) {\n return this.api.readCertificateSigningRequestStatusWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified CertificateSigningRequest\n * @param param the request object\n */\n readCertificateSigningRequestStatus(param, options) {\n return this.api.readCertificateSigningRequestStatus(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified CertificateSigningRequest\n * @param param the request object\n */\n replaceCertificateSigningRequestWithHttpInfo(param, options) {\n return this.api.replaceCertificateSigningRequestWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified CertificateSigningRequest\n * @param param the request object\n */\n replaceCertificateSigningRequest(param, options) {\n return this.api.replaceCertificateSigningRequest(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace approval of the specified CertificateSigningRequest\n * @param param the request object\n */\n replaceCertificateSigningRequestApprovalWithHttpInfo(param, options) {\n return this.api.replaceCertificateSigningRequestApprovalWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace approval of the specified CertificateSigningRequest\n * @param param the request object\n */\n replaceCertificateSigningRequestApproval(param, options) {\n return this.api.replaceCertificateSigningRequestApproval(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified CertificateSigningRequest\n * @param param the request object\n */\n replaceCertificateSigningRequestStatusWithHttpInfo(param, options) {\n return this.api.replaceCertificateSigningRequestStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified CertificateSigningRequest\n * @param param the request object\n */\n replaceCertificateSigningRequestStatus(param, options) {\n return this.api.replaceCertificateSigningRequestStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableCertificatesV1alpha1Api } from \"./ObservableAPI.js\";\nexport class ObjectCertificatesV1alpha1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableCertificatesV1alpha1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a ClusterTrustBundle\n * @param param the request object\n */\n createClusterTrustBundleWithHttpInfo(param, options) {\n return this.api.createClusterTrustBundleWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ClusterTrustBundle\n * @param param the request object\n */\n createClusterTrustBundle(param, options) {\n return this.api.createClusterTrustBundle(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete a ClusterTrustBundle\n * @param param the request object\n */\n deleteClusterTrustBundleWithHttpInfo(param, options) {\n return this.api.deleteClusterTrustBundleWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ClusterTrustBundle\n * @param param the request object\n */\n deleteClusterTrustBundle(param, options) {\n return this.api.deleteClusterTrustBundle(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete collection of ClusterTrustBundle\n * @param param the request object\n */\n deleteCollectionClusterTrustBundleWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionClusterTrustBundleWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ClusterTrustBundle\n * @param param the request object\n */\n deleteCollectionClusterTrustBundle(param = {}, options) {\n return this.api.deleteCollectionClusterTrustBundle(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind ClusterTrustBundle\n * @param param the request object\n */\n listClusterTrustBundleWithHttpInfo(param = {}, options) {\n return this.api.listClusterTrustBundleWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ClusterTrustBundle\n * @param param the request object\n */\n listClusterTrustBundle(param = {}, options) {\n return this.api.listClusterTrustBundle(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified ClusterTrustBundle\n * @param param the request object\n */\n patchClusterTrustBundleWithHttpInfo(param, options) {\n return this.api.patchClusterTrustBundleWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ClusterTrustBundle\n * @param param the request object\n */\n patchClusterTrustBundle(param, options) {\n return this.api.patchClusterTrustBundle(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified ClusterTrustBundle\n * @param param the request object\n */\n readClusterTrustBundleWithHttpInfo(param, options) {\n return this.api.readClusterTrustBundleWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ClusterTrustBundle\n * @param param the request object\n */\n readClusterTrustBundle(param, options) {\n return this.api.readClusterTrustBundle(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified ClusterTrustBundle\n * @param param the request object\n */\n replaceClusterTrustBundleWithHttpInfo(param, options) {\n return this.api.replaceClusterTrustBundleWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ClusterTrustBundle\n * @param param the request object\n */\n replaceClusterTrustBundle(param, options) {\n return this.api.replaceClusterTrustBundle(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableCertificatesV1beta1Api } from \"./ObservableAPI.js\";\nexport class ObjectCertificatesV1beta1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableCertificatesV1beta1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a ClusterTrustBundle\n * @param param the request object\n */\n createClusterTrustBundleWithHttpInfo(param, options) {\n return this.api.createClusterTrustBundleWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ClusterTrustBundle\n * @param param the request object\n */\n createClusterTrustBundle(param, options) {\n return this.api.createClusterTrustBundle(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete a ClusterTrustBundle\n * @param param the request object\n */\n deleteClusterTrustBundleWithHttpInfo(param, options) {\n return this.api.deleteClusterTrustBundleWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ClusterTrustBundle\n * @param param the request object\n */\n deleteClusterTrustBundle(param, options) {\n return this.api.deleteClusterTrustBundle(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete collection of ClusterTrustBundle\n * @param param the request object\n */\n deleteCollectionClusterTrustBundleWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionClusterTrustBundleWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ClusterTrustBundle\n * @param param the request object\n */\n deleteCollectionClusterTrustBundle(param = {}, options) {\n return this.api.deleteCollectionClusterTrustBundle(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind ClusterTrustBundle\n * @param param the request object\n */\n listClusterTrustBundleWithHttpInfo(param = {}, options) {\n return this.api.listClusterTrustBundleWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ClusterTrustBundle\n * @param param the request object\n */\n listClusterTrustBundle(param = {}, options) {\n return this.api.listClusterTrustBundle(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified ClusterTrustBundle\n * @param param the request object\n */\n patchClusterTrustBundleWithHttpInfo(param, options) {\n return this.api.patchClusterTrustBundleWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ClusterTrustBundle\n * @param param the request object\n */\n patchClusterTrustBundle(param, options) {\n return this.api.patchClusterTrustBundle(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified ClusterTrustBundle\n * @param param the request object\n */\n readClusterTrustBundleWithHttpInfo(param, options) {\n return this.api.readClusterTrustBundleWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ClusterTrustBundle\n * @param param the request object\n */\n readClusterTrustBundle(param, options) {\n return this.api.readClusterTrustBundle(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified ClusterTrustBundle\n * @param param the request object\n */\n replaceClusterTrustBundleWithHttpInfo(param, options) {\n return this.api.replaceClusterTrustBundleWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ClusterTrustBundle\n * @param param the request object\n */\n replaceClusterTrustBundle(param, options) {\n return this.api.replaceClusterTrustBundle(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableCoordinationApi } from \"./ObservableAPI.js\";\nexport class ObjectCoordinationApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableCoordinationApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableCoordinationV1Api } from \"./ObservableAPI.js\";\nexport class ObjectCoordinationV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableCoordinationV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a Lease\n * @param param the request object\n */\n createNamespacedLeaseWithHttpInfo(param, options) {\n return this.api.createNamespacedLeaseWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a Lease\n * @param param the request object\n */\n createNamespacedLease(param, options) {\n return this.api.createNamespacedLease(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of Lease\n * @param param the request object\n */\n deleteCollectionNamespacedLeaseWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedLeaseWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Lease\n * @param param the request object\n */\n deleteCollectionNamespacedLease(param, options) {\n return this.api.deleteCollectionNamespacedLease(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a Lease\n * @param param the request object\n */\n deleteNamespacedLeaseWithHttpInfo(param, options) {\n return this.api.deleteNamespacedLeaseWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a Lease\n * @param param the request object\n */\n deleteNamespacedLease(param, options) {\n return this.api.deleteNamespacedLease(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind Lease\n * @param param the request object\n */\n listLeaseForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listLeaseForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Lease\n * @param param the request object\n */\n listLeaseForAllNamespaces(param = {}, options) {\n return this.api.listLeaseForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Lease\n * @param param the request object\n */\n listNamespacedLeaseWithHttpInfo(param, options) {\n return this.api.listNamespacedLeaseWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Lease\n * @param param the request object\n */\n listNamespacedLease(param, options) {\n return this.api.listNamespacedLease(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified Lease\n * @param param the request object\n */\n patchNamespacedLeaseWithHttpInfo(param, options) {\n return this.api.patchNamespacedLeaseWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Lease\n * @param param the request object\n */\n patchNamespacedLease(param, options) {\n return this.api.patchNamespacedLease(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified Lease\n * @param param the request object\n */\n readNamespacedLeaseWithHttpInfo(param, options) {\n return this.api.readNamespacedLeaseWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Lease\n * @param param the request object\n */\n readNamespacedLease(param, options) {\n return this.api.readNamespacedLease(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * replace the specified Lease\n * @param param the request object\n */\n replaceNamespacedLeaseWithHttpInfo(param, options) {\n return this.api.replaceNamespacedLeaseWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Lease\n * @param param the request object\n */\n replaceNamespacedLease(param, options) {\n return this.api.replaceNamespacedLease(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableCoordinationV1alpha2Api } from \"./ObservableAPI.js\";\nexport class ObjectCoordinationV1alpha2Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableCoordinationV1alpha2Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a LeaseCandidate\n * @param param the request object\n */\n createNamespacedLeaseCandidateWithHttpInfo(param, options) {\n return this.api.createNamespacedLeaseCandidateWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a LeaseCandidate\n * @param param the request object\n */\n createNamespacedLeaseCandidate(param, options) {\n return this.api.createNamespacedLeaseCandidate(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of LeaseCandidate\n * @param param the request object\n */\n deleteCollectionNamespacedLeaseCandidateWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedLeaseCandidateWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of LeaseCandidate\n * @param param the request object\n */\n deleteCollectionNamespacedLeaseCandidate(param, options) {\n return this.api.deleteCollectionNamespacedLeaseCandidate(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a LeaseCandidate\n * @param param the request object\n */\n deleteNamespacedLeaseCandidateWithHttpInfo(param, options) {\n return this.api.deleteNamespacedLeaseCandidateWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a LeaseCandidate\n * @param param the request object\n */\n deleteNamespacedLeaseCandidate(param, options) {\n return this.api.deleteNamespacedLeaseCandidate(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind LeaseCandidate\n * @param param the request object\n */\n listLeaseCandidateForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listLeaseCandidateForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind LeaseCandidate\n * @param param the request object\n */\n listLeaseCandidateForAllNamespaces(param = {}, options) {\n return this.api.listLeaseCandidateForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind LeaseCandidate\n * @param param the request object\n */\n listNamespacedLeaseCandidateWithHttpInfo(param, options) {\n return this.api.listNamespacedLeaseCandidateWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind LeaseCandidate\n * @param param the request object\n */\n listNamespacedLeaseCandidate(param, options) {\n return this.api.listNamespacedLeaseCandidate(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified LeaseCandidate\n * @param param the request object\n */\n patchNamespacedLeaseCandidateWithHttpInfo(param, options) {\n return this.api.patchNamespacedLeaseCandidateWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified LeaseCandidate\n * @param param the request object\n */\n patchNamespacedLeaseCandidate(param, options) {\n return this.api.patchNamespacedLeaseCandidate(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified LeaseCandidate\n * @param param the request object\n */\n readNamespacedLeaseCandidateWithHttpInfo(param, options) {\n return this.api.readNamespacedLeaseCandidateWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified LeaseCandidate\n * @param param the request object\n */\n readNamespacedLeaseCandidate(param, options) {\n return this.api.readNamespacedLeaseCandidate(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * replace the specified LeaseCandidate\n * @param param the request object\n */\n replaceNamespacedLeaseCandidateWithHttpInfo(param, options) {\n return this.api.replaceNamespacedLeaseCandidateWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified LeaseCandidate\n * @param param the request object\n */\n replaceNamespacedLeaseCandidate(param, options) {\n return this.api.replaceNamespacedLeaseCandidate(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableCoordinationV1beta1Api } from \"./ObservableAPI.js\";\nexport class ObjectCoordinationV1beta1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableCoordinationV1beta1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a LeaseCandidate\n * @param param the request object\n */\n createNamespacedLeaseCandidateWithHttpInfo(param, options) {\n return this.api.createNamespacedLeaseCandidateWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a LeaseCandidate\n * @param param the request object\n */\n createNamespacedLeaseCandidate(param, options) {\n return this.api.createNamespacedLeaseCandidate(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of LeaseCandidate\n * @param param the request object\n */\n deleteCollectionNamespacedLeaseCandidateWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedLeaseCandidateWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of LeaseCandidate\n * @param param the request object\n */\n deleteCollectionNamespacedLeaseCandidate(param, options) {\n return this.api.deleteCollectionNamespacedLeaseCandidate(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a LeaseCandidate\n * @param param the request object\n */\n deleteNamespacedLeaseCandidateWithHttpInfo(param, options) {\n return this.api.deleteNamespacedLeaseCandidateWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a LeaseCandidate\n * @param param the request object\n */\n deleteNamespacedLeaseCandidate(param, options) {\n return this.api.deleteNamespacedLeaseCandidate(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind LeaseCandidate\n * @param param the request object\n */\n listLeaseCandidateForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listLeaseCandidateForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind LeaseCandidate\n * @param param the request object\n */\n listLeaseCandidateForAllNamespaces(param = {}, options) {\n return this.api.listLeaseCandidateForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind LeaseCandidate\n * @param param the request object\n */\n listNamespacedLeaseCandidateWithHttpInfo(param, options) {\n return this.api.listNamespacedLeaseCandidateWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind LeaseCandidate\n * @param param the request object\n */\n listNamespacedLeaseCandidate(param, options) {\n return this.api.listNamespacedLeaseCandidate(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified LeaseCandidate\n * @param param the request object\n */\n patchNamespacedLeaseCandidateWithHttpInfo(param, options) {\n return this.api.patchNamespacedLeaseCandidateWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified LeaseCandidate\n * @param param the request object\n */\n patchNamespacedLeaseCandidate(param, options) {\n return this.api.patchNamespacedLeaseCandidate(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified LeaseCandidate\n * @param param the request object\n */\n readNamespacedLeaseCandidateWithHttpInfo(param, options) {\n return this.api.readNamespacedLeaseCandidateWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified LeaseCandidate\n * @param param the request object\n */\n readNamespacedLeaseCandidate(param, options) {\n return this.api.readNamespacedLeaseCandidate(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * replace the specified LeaseCandidate\n * @param param the request object\n */\n replaceNamespacedLeaseCandidateWithHttpInfo(param, options) {\n return this.api.replaceNamespacedLeaseCandidateWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified LeaseCandidate\n * @param param the request object\n */\n replaceNamespacedLeaseCandidate(param, options) {\n return this.api.replaceNamespacedLeaseCandidate(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableCoreApi } from \"./ObservableAPI.js\";\nexport class ObjectCoreApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableCoreApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get available API versions\n * @param param the request object\n */\n getAPIVersionsWithHttpInfo(param = {}, options) {\n return this.api.getAPIVersionsWithHttpInfo(options).toPromise();\n }\n /**\n * get available API versions\n * @param param the request object\n */\n getAPIVersions(param = {}, options) {\n return this.api.getAPIVersions(options).toPromise();\n }\n}\nimport { ObservableCoreV1Api } from \"./ObservableAPI.js\";\nexport class ObjectCoreV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableCoreV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * connect DELETE requests to proxy of Pod\n * @param param the request object\n */\n connectDeleteNamespacedPodProxyWithHttpInfo(param, options) {\n return this.api.connectDeleteNamespacedPodProxyWithHttpInfo(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect DELETE requests to proxy of Pod\n * @param param the request object\n */\n connectDeleteNamespacedPodProxy(param, options) {\n return this.api.connectDeleteNamespacedPodProxy(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect DELETE requests to proxy of Pod\n * @param param the request object\n */\n connectDeleteNamespacedPodProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectDeleteNamespacedPodProxyWithPathWithHttpInfo(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect DELETE requests to proxy of Pod\n * @param param the request object\n */\n connectDeleteNamespacedPodProxyWithPath(param, options) {\n return this.api.connectDeleteNamespacedPodProxyWithPath(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect DELETE requests to proxy of Service\n * @param param the request object\n */\n connectDeleteNamespacedServiceProxyWithHttpInfo(param, options) {\n return this.api.connectDeleteNamespacedServiceProxyWithHttpInfo(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect DELETE requests to proxy of Service\n * @param param the request object\n */\n connectDeleteNamespacedServiceProxy(param, options) {\n return this.api.connectDeleteNamespacedServiceProxy(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect DELETE requests to proxy of Service\n * @param param the request object\n */\n connectDeleteNamespacedServiceProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectDeleteNamespacedServiceProxyWithPathWithHttpInfo(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect DELETE requests to proxy of Service\n * @param param the request object\n */\n connectDeleteNamespacedServiceProxyWithPath(param, options) {\n return this.api.connectDeleteNamespacedServiceProxyWithPath(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect DELETE requests to proxy of Node\n * @param param the request object\n */\n connectDeleteNodeProxyWithHttpInfo(param, options) {\n return this.api.connectDeleteNodeProxyWithHttpInfo(param.name, param.path, options).toPromise();\n }\n /**\n * connect DELETE requests to proxy of Node\n * @param param the request object\n */\n connectDeleteNodeProxy(param, options) {\n return this.api.connectDeleteNodeProxy(param.name, param.path, options).toPromise();\n }\n /**\n * connect DELETE requests to proxy of Node\n * @param param the request object\n */\n connectDeleteNodeProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectDeleteNodeProxyWithPathWithHttpInfo(param.name, param.path, param.path2, options).toPromise();\n }\n /**\n * connect DELETE requests to proxy of Node\n * @param param the request object\n */\n connectDeleteNodeProxyWithPath(param, options) {\n return this.api.connectDeleteNodeProxyWithPath(param.name, param.path, param.path2, options).toPromise();\n }\n /**\n * connect GET requests to attach of Pod\n * @param param the request object\n */\n connectGetNamespacedPodAttachWithHttpInfo(param, options) {\n return this.api.connectGetNamespacedPodAttachWithHttpInfo(param.name, param.namespace, param.container, param.stderr, param.stdin, param.stdout, param.tty, options).toPromise();\n }\n /**\n * connect GET requests to attach of Pod\n * @param param the request object\n */\n connectGetNamespacedPodAttach(param, options) {\n return this.api.connectGetNamespacedPodAttach(param.name, param.namespace, param.container, param.stderr, param.stdin, param.stdout, param.tty, options).toPromise();\n }\n /**\n * connect GET requests to exec of Pod\n * @param param the request object\n */\n connectGetNamespacedPodExecWithHttpInfo(param, options) {\n return this.api.connectGetNamespacedPodExecWithHttpInfo(param.name, param.namespace, param.command, param.container, param.stderr, param.stdin, param.stdout, param.tty, options).toPromise();\n }\n /**\n * connect GET requests to exec of Pod\n * @param param the request object\n */\n connectGetNamespacedPodExec(param, options) {\n return this.api.connectGetNamespacedPodExec(param.name, param.namespace, param.command, param.container, param.stderr, param.stdin, param.stdout, param.tty, options).toPromise();\n }\n /**\n * connect GET requests to portforward of Pod\n * @param param the request object\n */\n connectGetNamespacedPodPortforwardWithHttpInfo(param, options) {\n return this.api.connectGetNamespacedPodPortforwardWithHttpInfo(param.name, param.namespace, param.ports, options).toPromise();\n }\n /**\n * connect GET requests to portforward of Pod\n * @param param the request object\n */\n connectGetNamespacedPodPortforward(param, options) {\n return this.api.connectGetNamespacedPodPortforward(param.name, param.namespace, param.ports, options).toPromise();\n }\n /**\n * connect GET requests to proxy of Pod\n * @param param the request object\n */\n connectGetNamespacedPodProxyWithHttpInfo(param, options) {\n return this.api.connectGetNamespacedPodProxyWithHttpInfo(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect GET requests to proxy of Pod\n * @param param the request object\n */\n connectGetNamespacedPodProxy(param, options) {\n return this.api.connectGetNamespacedPodProxy(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect GET requests to proxy of Pod\n * @param param the request object\n */\n connectGetNamespacedPodProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectGetNamespacedPodProxyWithPathWithHttpInfo(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect GET requests to proxy of Pod\n * @param param the request object\n */\n connectGetNamespacedPodProxyWithPath(param, options) {\n return this.api.connectGetNamespacedPodProxyWithPath(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect GET requests to proxy of Service\n * @param param the request object\n */\n connectGetNamespacedServiceProxyWithHttpInfo(param, options) {\n return this.api.connectGetNamespacedServiceProxyWithHttpInfo(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect GET requests to proxy of Service\n * @param param the request object\n */\n connectGetNamespacedServiceProxy(param, options) {\n return this.api.connectGetNamespacedServiceProxy(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect GET requests to proxy of Service\n * @param param the request object\n */\n connectGetNamespacedServiceProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectGetNamespacedServiceProxyWithPathWithHttpInfo(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect GET requests to proxy of Service\n * @param param the request object\n */\n connectGetNamespacedServiceProxyWithPath(param, options) {\n return this.api.connectGetNamespacedServiceProxyWithPath(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect GET requests to proxy of Node\n * @param param the request object\n */\n connectGetNodeProxyWithHttpInfo(param, options) {\n return this.api.connectGetNodeProxyWithHttpInfo(param.name, param.path, options).toPromise();\n }\n /**\n * connect GET requests to proxy of Node\n * @param param the request object\n */\n connectGetNodeProxy(param, options) {\n return this.api.connectGetNodeProxy(param.name, param.path, options).toPromise();\n }\n /**\n * connect GET requests to proxy of Node\n * @param param the request object\n */\n connectGetNodeProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectGetNodeProxyWithPathWithHttpInfo(param.name, param.path, param.path2, options).toPromise();\n }\n /**\n * connect GET requests to proxy of Node\n * @param param the request object\n */\n connectGetNodeProxyWithPath(param, options) {\n return this.api.connectGetNodeProxyWithPath(param.name, param.path, param.path2, options).toPromise();\n }\n /**\n * connect HEAD requests to proxy of Pod\n * @param param the request object\n */\n connectHeadNamespacedPodProxyWithHttpInfo(param, options) {\n return this.api.connectHeadNamespacedPodProxyWithHttpInfo(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect HEAD requests to proxy of Pod\n * @param param the request object\n */\n connectHeadNamespacedPodProxy(param, options) {\n return this.api.connectHeadNamespacedPodProxy(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect HEAD requests to proxy of Pod\n * @param param the request object\n */\n connectHeadNamespacedPodProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectHeadNamespacedPodProxyWithPathWithHttpInfo(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect HEAD requests to proxy of Pod\n * @param param the request object\n */\n connectHeadNamespacedPodProxyWithPath(param, options) {\n return this.api.connectHeadNamespacedPodProxyWithPath(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect HEAD requests to proxy of Service\n * @param param the request object\n */\n connectHeadNamespacedServiceProxyWithHttpInfo(param, options) {\n return this.api.connectHeadNamespacedServiceProxyWithHttpInfo(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect HEAD requests to proxy of Service\n * @param param the request object\n */\n connectHeadNamespacedServiceProxy(param, options) {\n return this.api.connectHeadNamespacedServiceProxy(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect HEAD requests to proxy of Service\n * @param param the request object\n */\n connectHeadNamespacedServiceProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectHeadNamespacedServiceProxyWithPathWithHttpInfo(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect HEAD requests to proxy of Service\n * @param param the request object\n */\n connectHeadNamespacedServiceProxyWithPath(param, options) {\n return this.api.connectHeadNamespacedServiceProxyWithPath(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect HEAD requests to proxy of Node\n * @param param the request object\n */\n connectHeadNodeProxyWithHttpInfo(param, options) {\n return this.api.connectHeadNodeProxyWithHttpInfo(param.name, param.path, options).toPromise();\n }\n /**\n * connect HEAD requests to proxy of Node\n * @param param the request object\n */\n connectHeadNodeProxy(param, options) {\n return this.api.connectHeadNodeProxy(param.name, param.path, options).toPromise();\n }\n /**\n * connect HEAD requests to proxy of Node\n * @param param the request object\n */\n connectHeadNodeProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectHeadNodeProxyWithPathWithHttpInfo(param.name, param.path, param.path2, options).toPromise();\n }\n /**\n * connect HEAD requests to proxy of Node\n * @param param the request object\n */\n connectHeadNodeProxyWithPath(param, options) {\n return this.api.connectHeadNodeProxyWithPath(param.name, param.path, param.path2, options).toPromise();\n }\n /**\n * connect OPTIONS requests to proxy of Pod\n * @param param the request object\n */\n connectOptionsNamespacedPodProxyWithHttpInfo(param, options) {\n return this.api.connectOptionsNamespacedPodProxyWithHttpInfo(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect OPTIONS requests to proxy of Pod\n * @param param the request object\n */\n connectOptionsNamespacedPodProxy(param, options) {\n return this.api.connectOptionsNamespacedPodProxy(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect OPTIONS requests to proxy of Pod\n * @param param the request object\n */\n connectOptionsNamespacedPodProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectOptionsNamespacedPodProxyWithPathWithHttpInfo(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect OPTIONS requests to proxy of Pod\n * @param param the request object\n */\n connectOptionsNamespacedPodProxyWithPath(param, options) {\n return this.api.connectOptionsNamespacedPodProxyWithPath(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect OPTIONS requests to proxy of Service\n * @param param the request object\n */\n connectOptionsNamespacedServiceProxyWithHttpInfo(param, options) {\n return this.api.connectOptionsNamespacedServiceProxyWithHttpInfo(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect OPTIONS requests to proxy of Service\n * @param param the request object\n */\n connectOptionsNamespacedServiceProxy(param, options) {\n return this.api.connectOptionsNamespacedServiceProxy(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect OPTIONS requests to proxy of Service\n * @param param the request object\n */\n connectOptionsNamespacedServiceProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectOptionsNamespacedServiceProxyWithPathWithHttpInfo(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect OPTIONS requests to proxy of Service\n * @param param the request object\n */\n connectOptionsNamespacedServiceProxyWithPath(param, options) {\n return this.api.connectOptionsNamespacedServiceProxyWithPath(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect OPTIONS requests to proxy of Node\n * @param param the request object\n */\n connectOptionsNodeProxyWithHttpInfo(param, options) {\n return this.api.connectOptionsNodeProxyWithHttpInfo(param.name, param.path, options).toPromise();\n }\n /**\n * connect OPTIONS requests to proxy of Node\n * @param param the request object\n */\n connectOptionsNodeProxy(param, options) {\n return this.api.connectOptionsNodeProxy(param.name, param.path, options).toPromise();\n }\n /**\n * connect OPTIONS requests to proxy of Node\n * @param param the request object\n */\n connectOptionsNodeProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectOptionsNodeProxyWithPathWithHttpInfo(param.name, param.path, param.path2, options).toPromise();\n }\n /**\n * connect OPTIONS requests to proxy of Node\n * @param param the request object\n */\n connectOptionsNodeProxyWithPath(param, options) {\n return this.api.connectOptionsNodeProxyWithPath(param.name, param.path, param.path2, options).toPromise();\n }\n /**\n * connect PATCH requests to proxy of Pod\n * @param param the request object\n */\n connectPatchNamespacedPodProxyWithHttpInfo(param, options) {\n return this.api.connectPatchNamespacedPodProxyWithHttpInfo(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect PATCH requests to proxy of Pod\n * @param param the request object\n */\n connectPatchNamespacedPodProxy(param, options) {\n return this.api.connectPatchNamespacedPodProxy(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect PATCH requests to proxy of Pod\n * @param param the request object\n */\n connectPatchNamespacedPodProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectPatchNamespacedPodProxyWithPathWithHttpInfo(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect PATCH requests to proxy of Pod\n * @param param the request object\n */\n connectPatchNamespacedPodProxyWithPath(param, options) {\n return this.api.connectPatchNamespacedPodProxyWithPath(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect PATCH requests to proxy of Service\n * @param param the request object\n */\n connectPatchNamespacedServiceProxyWithHttpInfo(param, options) {\n return this.api.connectPatchNamespacedServiceProxyWithHttpInfo(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect PATCH requests to proxy of Service\n * @param param the request object\n */\n connectPatchNamespacedServiceProxy(param, options) {\n return this.api.connectPatchNamespacedServiceProxy(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect PATCH requests to proxy of Service\n * @param param the request object\n */\n connectPatchNamespacedServiceProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectPatchNamespacedServiceProxyWithPathWithHttpInfo(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect PATCH requests to proxy of Service\n * @param param the request object\n */\n connectPatchNamespacedServiceProxyWithPath(param, options) {\n return this.api.connectPatchNamespacedServiceProxyWithPath(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect PATCH requests to proxy of Node\n * @param param the request object\n */\n connectPatchNodeProxyWithHttpInfo(param, options) {\n return this.api.connectPatchNodeProxyWithHttpInfo(param.name, param.path, options).toPromise();\n }\n /**\n * connect PATCH requests to proxy of Node\n * @param param the request object\n */\n connectPatchNodeProxy(param, options) {\n return this.api.connectPatchNodeProxy(param.name, param.path, options).toPromise();\n }\n /**\n * connect PATCH requests to proxy of Node\n * @param param the request object\n */\n connectPatchNodeProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectPatchNodeProxyWithPathWithHttpInfo(param.name, param.path, param.path2, options).toPromise();\n }\n /**\n * connect PATCH requests to proxy of Node\n * @param param the request object\n */\n connectPatchNodeProxyWithPath(param, options) {\n return this.api.connectPatchNodeProxyWithPath(param.name, param.path, param.path2, options).toPromise();\n }\n /**\n * connect POST requests to attach of Pod\n * @param param the request object\n */\n connectPostNamespacedPodAttachWithHttpInfo(param, options) {\n return this.api.connectPostNamespacedPodAttachWithHttpInfo(param.name, param.namespace, param.container, param.stderr, param.stdin, param.stdout, param.tty, options).toPromise();\n }\n /**\n * connect POST requests to attach of Pod\n * @param param the request object\n */\n connectPostNamespacedPodAttach(param, options) {\n return this.api.connectPostNamespacedPodAttach(param.name, param.namespace, param.container, param.stderr, param.stdin, param.stdout, param.tty, options).toPromise();\n }\n /**\n * connect POST requests to exec of Pod\n * @param param the request object\n */\n connectPostNamespacedPodExecWithHttpInfo(param, options) {\n return this.api.connectPostNamespacedPodExecWithHttpInfo(param.name, param.namespace, param.command, param.container, param.stderr, param.stdin, param.stdout, param.tty, options).toPromise();\n }\n /**\n * connect POST requests to exec of Pod\n * @param param the request object\n */\n connectPostNamespacedPodExec(param, options) {\n return this.api.connectPostNamespacedPodExec(param.name, param.namespace, param.command, param.container, param.stderr, param.stdin, param.stdout, param.tty, options).toPromise();\n }\n /**\n * connect POST requests to portforward of Pod\n * @param param the request object\n */\n connectPostNamespacedPodPortforwardWithHttpInfo(param, options) {\n return this.api.connectPostNamespacedPodPortforwardWithHttpInfo(param.name, param.namespace, param.ports, options).toPromise();\n }\n /**\n * connect POST requests to portforward of Pod\n * @param param the request object\n */\n connectPostNamespacedPodPortforward(param, options) {\n return this.api.connectPostNamespacedPodPortforward(param.name, param.namespace, param.ports, options).toPromise();\n }\n /**\n * connect POST requests to proxy of Pod\n * @param param the request object\n */\n connectPostNamespacedPodProxyWithHttpInfo(param, options) {\n return this.api.connectPostNamespacedPodProxyWithHttpInfo(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect POST requests to proxy of Pod\n * @param param the request object\n */\n connectPostNamespacedPodProxy(param, options) {\n return this.api.connectPostNamespacedPodProxy(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect POST requests to proxy of Pod\n * @param param the request object\n */\n connectPostNamespacedPodProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectPostNamespacedPodProxyWithPathWithHttpInfo(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect POST requests to proxy of Pod\n * @param param the request object\n */\n connectPostNamespacedPodProxyWithPath(param, options) {\n return this.api.connectPostNamespacedPodProxyWithPath(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect POST requests to proxy of Service\n * @param param the request object\n */\n connectPostNamespacedServiceProxyWithHttpInfo(param, options) {\n return this.api.connectPostNamespacedServiceProxyWithHttpInfo(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect POST requests to proxy of Service\n * @param param the request object\n */\n connectPostNamespacedServiceProxy(param, options) {\n return this.api.connectPostNamespacedServiceProxy(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect POST requests to proxy of Service\n * @param param the request object\n */\n connectPostNamespacedServiceProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectPostNamespacedServiceProxyWithPathWithHttpInfo(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect POST requests to proxy of Service\n * @param param the request object\n */\n connectPostNamespacedServiceProxyWithPath(param, options) {\n return this.api.connectPostNamespacedServiceProxyWithPath(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect POST requests to proxy of Node\n * @param param the request object\n */\n connectPostNodeProxyWithHttpInfo(param, options) {\n return this.api.connectPostNodeProxyWithHttpInfo(param.name, param.path, options).toPromise();\n }\n /**\n * connect POST requests to proxy of Node\n * @param param the request object\n */\n connectPostNodeProxy(param, options) {\n return this.api.connectPostNodeProxy(param.name, param.path, options).toPromise();\n }\n /**\n * connect POST requests to proxy of Node\n * @param param the request object\n */\n connectPostNodeProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectPostNodeProxyWithPathWithHttpInfo(param.name, param.path, param.path2, options).toPromise();\n }\n /**\n * connect POST requests to proxy of Node\n * @param param the request object\n */\n connectPostNodeProxyWithPath(param, options) {\n return this.api.connectPostNodeProxyWithPath(param.name, param.path, param.path2, options).toPromise();\n }\n /**\n * connect PUT requests to proxy of Pod\n * @param param the request object\n */\n connectPutNamespacedPodProxyWithHttpInfo(param, options) {\n return this.api.connectPutNamespacedPodProxyWithHttpInfo(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect PUT requests to proxy of Pod\n * @param param the request object\n */\n connectPutNamespacedPodProxy(param, options) {\n return this.api.connectPutNamespacedPodProxy(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect PUT requests to proxy of Pod\n * @param param the request object\n */\n connectPutNamespacedPodProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectPutNamespacedPodProxyWithPathWithHttpInfo(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect PUT requests to proxy of Pod\n * @param param the request object\n */\n connectPutNamespacedPodProxyWithPath(param, options) {\n return this.api.connectPutNamespacedPodProxyWithPath(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect PUT requests to proxy of Service\n * @param param the request object\n */\n connectPutNamespacedServiceProxyWithHttpInfo(param, options) {\n return this.api.connectPutNamespacedServiceProxyWithHttpInfo(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect PUT requests to proxy of Service\n * @param param the request object\n */\n connectPutNamespacedServiceProxy(param, options) {\n return this.api.connectPutNamespacedServiceProxy(param.name, param.namespace, param.path, options).toPromise();\n }\n /**\n * connect PUT requests to proxy of Service\n * @param param the request object\n */\n connectPutNamespacedServiceProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectPutNamespacedServiceProxyWithPathWithHttpInfo(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect PUT requests to proxy of Service\n * @param param the request object\n */\n connectPutNamespacedServiceProxyWithPath(param, options) {\n return this.api.connectPutNamespacedServiceProxyWithPath(param.name, param.namespace, param.path, param.path2, options).toPromise();\n }\n /**\n * connect PUT requests to proxy of Node\n * @param param the request object\n */\n connectPutNodeProxyWithHttpInfo(param, options) {\n return this.api.connectPutNodeProxyWithHttpInfo(param.name, param.path, options).toPromise();\n }\n /**\n * connect PUT requests to proxy of Node\n * @param param the request object\n */\n connectPutNodeProxy(param, options) {\n return this.api.connectPutNodeProxy(param.name, param.path, options).toPromise();\n }\n /**\n * connect PUT requests to proxy of Node\n * @param param the request object\n */\n connectPutNodeProxyWithPathWithHttpInfo(param, options) {\n return this.api.connectPutNodeProxyWithPathWithHttpInfo(param.name, param.path, param.path2, options).toPromise();\n }\n /**\n * connect PUT requests to proxy of Node\n * @param param the request object\n */\n connectPutNodeProxyWithPath(param, options) {\n return this.api.connectPutNodeProxyWithPath(param.name, param.path, param.path2, options).toPromise();\n }\n /**\n * create a Namespace\n * @param param the request object\n */\n createNamespaceWithHttpInfo(param, options) {\n return this.api.createNamespaceWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a Namespace\n * @param param the request object\n */\n createNamespace(param, options) {\n return this.api.createNamespace(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a Binding\n * @param param the request object\n */\n createNamespacedBindingWithHttpInfo(param, options) {\n return this.api.createNamespacedBindingWithHttpInfo(param.namespace, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * create a Binding\n * @param param the request object\n */\n createNamespacedBinding(param, options) {\n return this.api.createNamespacedBinding(param.namespace, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * create a ConfigMap\n * @param param the request object\n */\n createNamespacedConfigMapWithHttpInfo(param, options) {\n return this.api.createNamespacedConfigMapWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ConfigMap\n * @param param the request object\n */\n createNamespacedConfigMap(param, options) {\n return this.api.createNamespacedConfigMap(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create Endpoints\n * @param param the request object\n */\n createNamespacedEndpointsWithHttpInfo(param, options) {\n return this.api.createNamespacedEndpointsWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create Endpoints\n * @param param the request object\n */\n createNamespacedEndpoints(param, options) {\n return this.api.createNamespacedEndpoints(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create an Event\n * @param param the request object\n */\n createNamespacedEventWithHttpInfo(param, options) {\n return this.api.createNamespacedEventWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create an Event\n * @param param the request object\n */\n createNamespacedEvent(param, options) {\n return this.api.createNamespacedEvent(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a LimitRange\n * @param param the request object\n */\n createNamespacedLimitRangeWithHttpInfo(param, options) {\n return this.api.createNamespacedLimitRangeWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a LimitRange\n * @param param the request object\n */\n createNamespacedLimitRange(param, options) {\n return this.api.createNamespacedLimitRange(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a PersistentVolumeClaim\n * @param param the request object\n */\n createNamespacedPersistentVolumeClaimWithHttpInfo(param, options) {\n return this.api.createNamespacedPersistentVolumeClaimWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a PersistentVolumeClaim\n * @param param the request object\n */\n createNamespacedPersistentVolumeClaim(param, options) {\n return this.api.createNamespacedPersistentVolumeClaim(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a Pod\n * @param param the request object\n */\n createNamespacedPodWithHttpInfo(param, options) {\n return this.api.createNamespacedPodWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a Pod\n * @param param the request object\n */\n createNamespacedPod(param, options) {\n return this.api.createNamespacedPod(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create binding of a Pod\n * @param param the request object\n */\n createNamespacedPodBindingWithHttpInfo(param, options) {\n return this.api.createNamespacedPodBindingWithHttpInfo(param.name, param.namespace, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * create binding of a Pod\n * @param param the request object\n */\n createNamespacedPodBinding(param, options) {\n return this.api.createNamespacedPodBinding(param.name, param.namespace, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * create eviction of a Pod\n * @param param the request object\n */\n createNamespacedPodEvictionWithHttpInfo(param, options) {\n return this.api.createNamespacedPodEvictionWithHttpInfo(param.name, param.namespace, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * create eviction of a Pod\n * @param param the request object\n */\n createNamespacedPodEviction(param, options) {\n return this.api.createNamespacedPodEviction(param.name, param.namespace, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * create a PodTemplate\n * @param param the request object\n */\n createNamespacedPodTemplateWithHttpInfo(param, options) {\n return this.api.createNamespacedPodTemplateWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a PodTemplate\n * @param param the request object\n */\n createNamespacedPodTemplate(param, options) {\n return this.api.createNamespacedPodTemplate(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ReplicationController\n * @param param the request object\n */\n createNamespacedReplicationControllerWithHttpInfo(param, options) {\n return this.api.createNamespacedReplicationControllerWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ReplicationController\n * @param param the request object\n */\n createNamespacedReplicationController(param, options) {\n return this.api.createNamespacedReplicationController(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceQuota\n * @param param the request object\n */\n createNamespacedResourceQuotaWithHttpInfo(param, options) {\n return this.api.createNamespacedResourceQuotaWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceQuota\n * @param param the request object\n */\n createNamespacedResourceQuota(param, options) {\n return this.api.createNamespacedResourceQuota(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a Secret\n * @param param the request object\n */\n createNamespacedSecretWithHttpInfo(param, options) {\n return this.api.createNamespacedSecretWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a Secret\n * @param param the request object\n */\n createNamespacedSecret(param, options) {\n return this.api.createNamespacedSecret(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a Service\n * @param param the request object\n */\n createNamespacedServiceWithHttpInfo(param, options) {\n return this.api.createNamespacedServiceWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a Service\n * @param param the request object\n */\n createNamespacedService(param, options) {\n return this.api.createNamespacedService(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ServiceAccount\n * @param param the request object\n */\n createNamespacedServiceAccountWithHttpInfo(param, options) {\n return this.api.createNamespacedServiceAccountWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ServiceAccount\n * @param param the request object\n */\n createNamespacedServiceAccount(param, options) {\n return this.api.createNamespacedServiceAccount(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create token of a ServiceAccount\n * @param param the request object\n */\n createNamespacedServiceAccountTokenWithHttpInfo(param, options) {\n return this.api.createNamespacedServiceAccountTokenWithHttpInfo(param.name, param.namespace, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * create token of a ServiceAccount\n * @param param the request object\n */\n createNamespacedServiceAccountToken(param, options) {\n return this.api.createNamespacedServiceAccountToken(param.name, param.namespace, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * create a Node\n * @param param the request object\n */\n createNodeWithHttpInfo(param, options) {\n return this.api.createNodeWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a Node\n * @param param the request object\n */\n createNode(param, options) {\n return this.api.createNode(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a PersistentVolume\n * @param param the request object\n */\n createPersistentVolumeWithHttpInfo(param, options) {\n return this.api.createPersistentVolumeWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a PersistentVolume\n * @param param the request object\n */\n createPersistentVolume(param, options) {\n return this.api.createPersistentVolume(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of ConfigMap\n * @param param the request object\n */\n deleteCollectionNamespacedConfigMapWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedConfigMapWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ConfigMap\n * @param param the request object\n */\n deleteCollectionNamespacedConfigMap(param, options) {\n return this.api.deleteCollectionNamespacedConfigMap(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Endpoints\n * @param param the request object\n */\n deleteCollectionNamespacedEndpointsWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedEndpointsWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Endpoints\n * @param param the request object\n */\n deleteCollectionNamespacedEndpoints(param, options) {\n return this.api.deleteCollectionNamespacedEndpoints(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Event\n * @param param the request object\n */\n deleteCollectionNamespacedEventWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedEventWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Event\n * @param param the request object\n */\n deleteCollectionNamespacedEvent(param, options) {\n return this.api.deleteCollectionNamespacedEvent(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of LimitRange\n * @param param the request object\n */\n deleteCollectionNamespacedLimitRangeWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedLimitRangeWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of LimitRange\n * @param param the request object\n */\n deleteCollectionNamespacedLimitRange(param, options) {\n return this.api.deleteCollectionNamespacedLimitRange(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of PersistentVolumeClaim\n * @param param the request object\n */\n deleteCollectionNamespacedPersistentVolumeClaimWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedPersistentVolumeClaimWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of PersistentVolumeClaim\n * @param param the request object\n */\n deleteCollectionNamespacedPersistentVolumeClaim(param, options) {\n return this.api.deleteCollectionNamespacedPersistentVolumeClaim(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Pod\n * @param param the request object\n */\n deleteCollectionNamespacedPodWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedPodWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Pod\n * @param param the request object\n */\n deleteCollectionNamespacedPod(param, options) {\n return this.api.deleteCollectionNamespacedPod(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of PodTemplate\n * @param param the request object\n */\n deleteCollectionNamespacedPodTemplateWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedPodTemplateWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of PodTemplate\n * @param param the request object\n */\n deleteCollectionNamespacedPodTemplate(param, options) {\n return this.api.deleteCollectionNamespacedPodTemplate(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ReplicationController\n * @param param the request object\n */\n deleteCollectionNamespacedReplicationControllerWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedReplicationControllerWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ReplicationController\n * @param param the request object\n */\n deleteCollectionNamespacedReplicationController(param, options) {\n return this.api.deleteCollectionNamespacedReplicationController(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceQuota\n * @param param the request object\n */\n deleteCollectionNamespacedResourceQuotaWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedResourceQuotaWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceQuota\n * @param param the request object\n */\n deleteCollectionNamespacedResourceQuota(param, options) {\n return this.api.deleteCollectionNamespacedResourceQuota(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Secret\n * @param param the request object\n */\n deleteCollectionNamespacedSecretWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedSecretWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Secret\n * @param param the request object\n */\n deleteCollectionNamespacedSecret(param, options) {\n return this.api.deleteCollectionNamespacedSecret(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Service\n * @param param the request object\n */\n deleteCollectionNamespacedServiceWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedServiceWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Service\n * @param param the request object\n */\n deleteCollectionNamespacedService(param, options) {\n return this.api.deleteCollectionNamespacedService(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ServiceAccount\n * @param param the request object\n */\n deleteCollectionNamespacedServiceAccountWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedServiceAccountWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ServiceAccount\n * @param param the request object\n */\n deleteCollectionNamespacedServiceAccount(param, options) {\n return this.api.deleteCollectionNamespacedServiceAccount(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Node\n * @param param the request object\n */\n deleteCollectionNodeWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionNodeWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Node\n * @param param the request object\n */\n deleteCollectionNode(param = {}, options) {\n return this.api.deleteCollectionNode(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of PersistentVolume\n * @param param the request object\n */\n deleteCollectionPersistentVolumeWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionPersistentVolumeWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of PersistentVolume\n * @param param the request object\n */\n deleteCollectionPersistentVolume(param = {}, options) {\n return this.api.deleteCollectionPersistentVolume(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a Namespace\n * @param param the request object\n */\n deleteNamespaceWithHttpInfo(param, options) {\n return this.api.deleteNamespaceWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a Namespace\n * @param param the request object\n */\n deleteNamespace(param, options) {\n return this.api.deleteNamespace(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ConfigMap\n * @param param the request object\n */\n deleteNamespacedConfigMapWithHttpInfo(param, options) {\n return this.api.deleteNamespacedConfigMapWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ConfigMap\n * @param param the request object\n */\n deleteNamespacedConfigMap(param, options) {\n return this.api.deleteNamespacedConfigMap(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete Endpoints\n * @param param the request object\n */\n deleteNamespacedEndpointsWithHttpInfo(param, options) {\n return this.api.deleteNamespacedEndpointsWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete Endpoints\n * @param param the request object\n */\n deleteNamespacedEndpoints(param, options) {\n return this.api.deleteNamespacedEndpoints(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete an Event\n * @param param the request object\n */\n deleteNamespacedEventWithHttpInfo(param, options) {\n return this.api.deleteNamespacedEventWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete an Event\n * @param param the request object\n */\n deleteNamespacedEvent(param, options) {\n return this.api.deleteNamespacedEvent(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a LimitRange\n * @param param the request object\n */\n deleteNamespacedLimitRangeWithHttpInfo(param, options) {\n return this.api.deleteNamespacedLimitRangeWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a LimitRange\n * @param param the request object\n */\n deleteNamespacedLimitRange(param, options) {\n return this.api.deleteNamespacedLimitRange(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a PersistentVolumeClaim\n * @param param the request object\n */\n deleteNamespacedPersistentVolumeClaimWithHttpInfo(param, options) {\n return this.api.deleteNamespacedPersistentVolumeClaimWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a PersistentVolumeClaim\n * @param param the request object\n */\n deleteNamespacedPersistentVolumeClaim(param, options) {\n return this.api.deleteNamespacedPersistentVolumeClaim(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a Pod\n * @param param the request object\n */\n deleteNamespacedPodWithHttpInfo(param, options) {\n return this.api.deleteNamespacedPodWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a Pod\n * @param param the request object\n */\n deleteNamespacedPod(param, options) {\n return this.api.deleteNamespacedPod(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a PodTemplate\n * @param param the request object\n */\n deleteNamespacedPodTemplateWithHttpInfo(param, options) {\n return this.api.deleteNamespacedPodTemplateWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a PodTemplate\n * @param param the request object\n */\n deleteNamespacedPodTemplate(param, options) {\n return this.api.deleteNamespacedPodTemplate(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ReplicationController\n * @param param the request object\n */\n deleteNamespacedReplicationControllerWithHttpInfo(param, options) {\n return this.api.deleteNamespacedReplicationControllerWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ReplicationController\n * @param param the request object\n */\n deleteNamespacedReplicationController(param, options) {\n return this.api.deleteNamespacedReplicationController(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceQuota\n * @param param the request object\n */\n deleteNamespacedResourceQuotaWithHttpInfo(param, options) {\n return this.api.deleteNamespacedResourceQuotaWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceQuota\n * @param param the request object\n */\n deleteNamespacedResourceQuota(param, options) {\n return this.api.deleteNamespacedResourceQuota(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a Secret\n * @param param the request object\n */\n deleteNamespacedSecretWithHttpInfo(param, options) {\n return this.api.deleteNamespacedSecretWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a Secret\n * @param param the request object\n */\n deleteNamespacedSecret(param, options) {\n return this.api.deleteNamespacedSecret(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a Service\n * @param param the request object\n */\n deleteNamespacedServiceWithHttpInfo(param, options) {\n return this.api.deleteNamespacedServiceWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a Service\n * @param param the request object\n */\n deleteNamespacedService(param, options) {\n return this.api.deleteNamespacedService(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ServiceAccount\n * @param param the request object\n */\n deleteNamespacedServiceAccountWithHttpInfo(param, options) {\n return this.api.deleteNamespacedServiceAccountWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ServiceAccount\n * @param param the request object\n */\n deleteNamespacedServiceAccount(param, options) {\n return this.api.deleteNamespacedServiceAccount(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a Node\n * @param param the request object\n */\n deleteNodeWithHttpInfo(param, options) {\n return this.api.deleteNodeWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a Node\n * @param param the request object\n */\n deleteNode(param, options) {\n return this.api.deleteNode(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a PersistentVolume\n * @param param the request object\n */\n deletePersistentVolumeWithHttpInfo(param, options) {\n return this.api.deletePersistentVolumeWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a PersistentVolume\n * @param param the request object\n */\n deletePersistentVolume(param, options) {\n return this.api.deletePersistentVolume(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list objects of kind ComponentStatus\n * @param param the request object\n */\n listComponentStatusWithHttpInfo(param = {}, options) {\n return this.api.listComponentStatusWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list objects of kind ComponentStatus\n * @param param the request object\n */\n listComponentStatus(param = {}, options) {\n return this.api.listComponentStatus(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ConfigMap\n * @param param the request object\n */\n listConfigMapForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listConfigMapForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ConfigMap\n * @param param the request object\n */\n listConfigMapForAllNamespaces(param = {}, options) {\n return this.api.listConfigMapForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Endpoints\n * @param param the request object\n */\n listEndpointsForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listEndpointsForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Endpoints\n * @param param the request object\n */\n listEndpointsForAllNamespaces(param = {}, options) {\n return this.api.listEndpointsForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Event\n * @param param the request object\n */\n listEventForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listEventForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Event\n * @param param the request object\n */\n listEventForAllNamespaces(param = {}, options) {\n return this.api.listEventForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind LimitRange\n * @param param the request object\n */\n listLimitRangeForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listLimitRangeForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind LimitRange\n * @param param the request object\n */\n listLimitRangeForAllNamespaces(param = {}, options) {\n return this.api.listLimitRangeForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Namespace\n * @param param the request object\n */\n listNamespaceWithHttpInfo(param = {}, options) {\n return this.api.listNamespaceWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Namespace\n * @param param the request object\n */\n listNamespace(param = {}, options) {\n return this.api.listNamespace(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ConfigMap\n * @param param the request object\n */\n listNamespacedConfigMapWithHttpInfo(param, options) {\n return this.api.listNamespacedConfigMapWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ConfigMap\n * @param param the request object\n */\n listNamespacedConfigMap(param, options) {\n return this.api.listNamespacedConfigMap(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Endpoints\n * @param param the request object\n */\n listNamespacedEndpointsWithHttpInfo(param, options) {\n return this.api.listNamespacedEndpointsWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Endpoints\n * @param param the request object\n */\n listNamespacedEndpoints(param, options) {\n return this.api.listNamespacedEndpoints(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Event\n * @param param the request object\n */\n listNamespacedEventWithHttpInfo(param, options) {\n return this.api.listNamespacedEventWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Event\n * @param param the request object\n */\n listNamespacedEvent(param, options) {\n return this.api.listNamespacedEvent(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind LimitRange\n * @param param the request object\n */\n listNamespacedLimitRangeWithHttpInfo(param, options) {\n return this.api.listNamespacedLimitRangeWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind LimitRange\n * @param param the request object\n */\n listNamespacedLimitRange(param, options) {\n return this.api.listNamespacedLimitRange(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind PersistentVolumeClaim\n * @param param the request object\n */\n listNamespacedPersistentVolumeClaimWithHttpInfo(param, options) {\n return this.api.listNamespacedPersistentVolumeClaimWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind PersistentVolumeClaim\n * @param param the request object\n */\n listNamespacedPersistentVolumeClaim(param, options) {\n return this.api.listNamespacedPersistentVolumeClaim(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Pod\n * @param param the request object\n */\n listNamespacedPodWithHttpInfo(param, options) {\n return this.api.listNamespacedPodWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Pod\n * @param param the request object\n */\n listNamespacedPod(param, options) {\n return this.api.listNamespacedPod(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind PodTemplate\n * @param param the request object\n */\n listNamespacedPodTemplateWithHttpInfo(param, options) {\n return this.api.listNamespacedPodTemplateWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind PodTemplate\n * @param param the request object\n */\n listNamespacedPodTemplate(param, options) {\n return this.api.listNamespacedPodTemplate(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ReplicationController\n * @param param the request object\n */\n listNamespacedReplicationControllerWithHttpInfo(param, options) {\n return this.api.listNamespacedReplicationControllerWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ReplicationController\n * @param param the request object\n */\n listNamespacedReplicationController(param, options) {\n return this.api.listNamespacedReplicationController(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceQuota\n * @param param the request object\n */\n listNamespacedResourceQuotaWithHttpInfo(param, options) {\n return this.api.listNamespacedResourceQuotaWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceQuota\n * @param param the request object\n */\n listNamespacedResourceQuota(param, options) {\n return this.api.listNamespacedResourceQuota(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Secret\n * @param param the request object\n */\n listNamespacedSecretWithHttpInfo(param, options) {\n return this.api.listNamespacedSecretWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Secret\n * @param param the request object\n */\n listNamespacedSecret(param, options) {\n return this.api.listNamespacedSecret(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Service\n * @param param the request object\n */\n listNamespacedServiceWithHttpInfo(param, options) {\n return this.api.listNamespacedServiceWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Service\n * @param param the request object\n */\n listNamespacedService(param, options) {\n return this.api.listNamespacedService(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ServiceAccount\n * @param param the request object\n */\n listNamespacedServiceAccountWithHttpInfo(param, options) {\n return this.api.listNamespacedServiceAccountWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ServiceAccount\n * @param param the request object\n */\n listNamespacedServiceAccount(param, options) {\n return this.api.listNamespacedServiceAccount(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Node\n * @param param the request object\n */\n listNodeWithHttpInfo(param = {}, options) {\n return this.api.listNodeWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Node\n * @param param the request object\n */\n listNode(param = {}, options) {\n return this.api.listNode(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind PersistentVolume\n * @param param the request object\n */\n listPersistentVolumeWithHttpInfo(param = {}, options) {\n return this.api.listPersistentVolumeWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind PersistentVolume\n * @param param the request object\n */\n listPersistentVolume(param = {}, options) {\n return this.api.listPersistentVolume(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind PersistentVolumeClaim\n * @param param the request object\n */\n listPersistentVolumeClaimForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listPersistentVolumeClaimForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind PersistentVolumeClaim\n * @param param the request object\n */\n listPersistentVolumeClaimForAllNamespaces(param = {}, options) {\n return this.api.listPersistentVolumeClaimForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Pod\n * @param param the request object\n */\n listPodForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listPodForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Pod\n * @param param the request object\n */\n listPodForAllNamespaces(param = {}, options) {\n return this.api.listPodForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind PodTemplate\n * @param param the request object\n */\n listPodTemplateForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listPodTemplateForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind PodTemplate\n * @param param the request object\n */\n listPodTemplateForAllNamespaces(param = {}, options) {\n return this.api.listPodTemplateForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ReplicationController\n * @param param the request object\n */\n listReplicationControllerForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listReplicationControllerForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ReplicationController\n * @param param the request object\n */\n listReplicationControllerForAllNamespaces(param = {}, options) {\n return this.api.listReplicationControllerForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceQuota\n * @param param the request object\n */\n listResourceQuotaForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listResourceQuotaForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceQuota\n * @param param the request object\n */\n listResourceQuotaForAllNamespaces(param = {}, options) {\n return this.api.listResourceQuotaForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Secret\n * @param param the request object\n */\n listSecretForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listSecretForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Secret\n * @param param the request object\n */\n listSecretForAllNamespaces(param = {}, options) {\n return this.api.listSecretForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ServiceAccount\n * @param param the request object\n */\n listServiceAccountForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listServiceAccountForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ServiceAccount\n * @param param the request object\n */\n listServiceAccountForAllNamespaces(param = {}, options) {\n return this.api.listServiceAccountForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Service\n * @param param the request object\n */\n listServiceForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listServiceForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Service\n * @param param the request object\n */\n listServiceForAllNamespaces(param = {}, options) {\n return this.api.listServiceForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified Namespace\n * @param param the request object\n */\n patchNamespaceWithHttpInfo(param, options) {\n return this.api.patchNamespaceWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Namespace\n * @param param the request object\n */\n patchNamespace(param, options) {\n return this.api.patchNamespace(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified Namespace\n * @param param the request object\n */\n patchNamespaceStatusWithHttpInfo(param, options) {\n return this.api.patchNamespaceStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified Namespace\n * @param param the request object\n */\n patchNamespaceStatus(param, options) {\n return this.api.patchNamespaceStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ConfigMap\n * @param param the request object\n */\n patchNamespacedConfigMapWithHttpInfo(param, options) {\n return this.api.patchNamespacedConfigMapWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ConfigMap\n * @param param the request object\n */\n patchNamespacedConfigMap(param, options) {\n return this.api.patchNamespacedConfigMap(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Endpoints\n * @param param the request object\n */\n patchNamespacedEndpointsWithHttpInfo(param, options) {\n return this.api.patchNamespacedEndpointsWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Endpoints\n * @param param the request object\n */\n patchNamespacedEndpoints(param, options) {\n return this.api.patchNamespacedEndpoints(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Event\n * @param param the request object\n */\n patchNamespacedEventWithHttpInfo(param, options) {\n return this.api.patchNamespacedEventWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Event\n * @param param the request object\n */\n patchNamespacedEvent(param, options) {\n return this.api.patchNamespacedEvent(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified LimitRange\n * @param param the request object\n */\n patchNamespacedLimitRangeWithHttpInfo(param, options) {\n return this.api.patchNamespacedLimitRangeWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified LimitRange\n * @param param the request object\n */\n patchNamespacedLimitRange(param, options) {\n return this.api.patchNamespacedLimitRange(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified PersistentVolumeClaim\n * @param param the request object\n */\n patchNamespacedPersistentVolumeClaimWithHttpInfo(param, options) {\n return this.api.patchNamespacedPersistentVolumeClaimWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified PersistentVolumeClaim\n * @param param the request object\n */\n patchNamespacedPersistentVolumeClaim(param, options) {\n return this.api.patchNamespacedPersistentVolumeClaim(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified PersistentVolumeClaim\n * @param param the request object\n */\n patchNamespacedPersistentVolumeClaimStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedPersistentVolumeClaimStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified PersistentVolumeClaim\n * @param param the request object\n */\n patchNamespacedPersistentVolumeClaimStatus(param, options) {\n return this.api.patchNamespacedPersistentVolumeClaimStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Pod\n * @param param the request object\n */\n patchNamespacedPodWithHttpInfo(param, options) {\n return this.api.patchNamespacedPodWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Pod\n * @param param the request object\n */\n patchNamespacedPod(param, options) {\n return this.api.patchNamespacedPod(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update ephemeralcontainers of the specified Pod\n * @param param the request object\n */\n patchNamespacedPodEphemeralcontainersWithHttpInfo(param, options) {\n return this.api.patchNamespacedPodEphemeralcontainersWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update ephemeralcontainers of the specified Pod\n * @param param the request object\n */\n patchNamespacedPodEphemeralcontainers(param, options) {\n return this.api.patchNamespacedPodEphemeralcontainers(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update resize of the specified Pod\n * @param param the request object\n */\n patchNamespacedPodResizeWithHttpInfo(param, options) {\n return this.api.patchNamespacedPodResizeWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update resize of the specified Pod\n * @param param the request object\n */\n patchNamespacedPodResize(param, options) {\n return this.api.patchNamespacedPodResize(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified Pod\n * @param param the request object\n */\n patchNamespacedPodStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedPodStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified Pod\n * @param param the request object\n */\n patchNamespacedPodStatus(param, options) {\n return this.api.patchNamespacedPodStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified PodTemplate\n * @param param the request object\n */\n patchNamespacedPodTemplateWithHttpInfo(param, options) {\n return this.api.patchNamespacedPodTemplateWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified PodTemplate\n * @param param the request object\n */\n patchNamespacedPodTemplate(param, options) {\n return this.api.patchNamespacedPodTemplate(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ReplicationController\n * @param param the request object\n */\n patchNamespacedReplicationControllerWithHttpInfo(param, options) {\n return this.api.patchNamespacedReplicationControllerWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ReplicationController\n * @param param the request object\n */\n patchNamespacedReplicationController(param, options) {\n return this.api.patchNamespacedReplicationController(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update scale of the specified ReplicationController\n * @param param the request object\n */\n patchNamespacedReplicationControllerScaleWithHttpInfo(param, options) {\n return this.api.patchNamespacedReplicationControllerScaleWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update scale of the specified ReplicationController\n * @param param the request object\n */\n patchNamespacedReplicationControllerScale(param, options) {\n return this.api.patchNamespacedReplicationControllerScale(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ReplicationController\n * @param param the request object\n */\n patchNamespacedReplicationControllerStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedReplicationControllerStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ReplicationController\n * @param param the request object\n */\n patchNamespacedReplicationControllerStatus(param, options) {\n return this.api.patchNamespacedReplicationControllerStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceQuota\n * @param param the request object\n */\n patchNamespacedResourceQuotaWithHttpInfo(param, options) {\n return this.api.patchNamespacedResourceQuotaWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceQuota\n * @param param the request object\n */\n patchNamespacedResourceQuota(param, options) {\n return this.api.patchNamespacedResourceQuota(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ResourceQuota\n * @param param the request object\n */\n patchNamespacedResourceQuotaStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedResourceQuotaStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ResourceQuota\n * @param param the request object\n */\n patchNamespacedResourceQuotaStatus(param, options) {\n return this.api.patchNamespacedResourceQuotaStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Secret\n * @param param the request object\n */\n patchNamespacedSecretWithHttpInfo(param, options) {\n return this.api.patchNamespacedSecretWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Secret\n * @param param the request object\n */\n patchNamespacedSecret(param, options) {\n return this.api.patchNamespacedSecret(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Service\n * @param param the request object\n */\n patchNamespacedServiceWithHttpInfo(param, options) {\n return this.api.patchNamespacedServiceWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Service\n * @param param the request object\n */\n patchNamespacedService(param, options) {\n return this.api.patchNamespacedService(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ServiceAccount\n * @param param the request object\n */\n patchNamespacedServiceAccountWithHttpInfo(param, options) {\n return this.api.patchNamespacedServiceAccountWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ServiceAccount\n * @param param the request object\n */\n patchNamespacedServiceAccount(param, options) {\n return this.api.patchNamespacedServiceAccount(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified Service\n * @param param the request object\n */\n patchNamespacedServiceStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedServiceStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified Service\n * @param param the request object\n */\n patchNamespacedServiceStatus(param, options) {\n return this.api.patchNamespacedServiceStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Node\n * @param param the request object\n */\n patchNodeWithHttpInfo(param, options) {\n return this.api.patchNodeWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Node\n * @param param the request object\n */\n patchNode(param, options) {\n return this.api.patchNode(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified Node\n * @param param the request object\n */\n patchNodeStatusWithHttpInfo(param, options) {\n return this.api.patchNodeStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified Node\n * @param param the request object\n */\n patchNodeStatus(param, options) {\n return this.api.patchNodeStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified PersistentVolume\n * @param param the request object\n */\n patchPersistentVolumeWithHttpInfo(param, options) {\n return this.api.patchPersistentVolumeWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified PersistentVolume\n * @param param the request object\n */\n patchPersistentVolume(param, options) {\n return this.api.patchPersistentVolume(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified PersistentVolume\n * @param param the request object\n */\n patchPersistentVolumeStatusWithHttpInfo(param, options) {\n return this.api.patchPersistentVolumeStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified PersistentVolume\n * @param param the request object\n */\n patchPersistentVolumeStatus(param, options) {\n return this.api.patchPersistentVolumeStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified ComponentStatus\n * @param param the request object\n */\n readComponentStatusWithHttpInfo(param, options) {\n return this.api.readComponentStatusWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ComponentStatus\n * @param param the request object\n */\n readComponentStatus(param, options) {\n return this.api.readComponentStatus(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified Namespace\n * @param param the request object\n */\n readNamespaceWithHttpInfo(param, options) {\n return this.api.readNamespaceWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified Namespace\n * @param param the request object\n */\n readNamespace(param, options) {\n return this.api.readNamespace(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified Namespace\n * @param param the request object\n */\n readNamespaceStatusWithHttpInfo(param, options) {\n return this.api.readNamespaceStatusWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified Namespace\n * @param param the request object\n */\n readNamespaceStatus(param, options) {\n return this.api.readNamespaceStatus(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ConfigMap\n * @param param the request object\n */\n readNamespacedConfigMapWithHttpInfo(param, options) {\n return this.api.readNamespacedConfigMapWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ConfigMap\n * @param param the request object\n */\n readNamespacedConfigMap(param, options) {\n return this.api.readNamespacedConfigMap(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Endpoints\n * @param param the request object\n */\n readNamespacedEndpointsWithHttpInfo(param, options) {\n return this.api.readNamespacedEndpointsWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Endpoints\n * @param param the request object\n */\n readNamespacedEndpoints(param, options) {\n return this.api.readNamespacedEndpoints(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Event\n * @param param the request object\n */\n readNamespacedEventWithHttpInfo(param, options) {\n return this.api.readNamespacedEventWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Event\n * @param param the request object\n */\n readNamespacedEvent(param, options) {\n return this.api.readNamespacedEvent(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified LimitRange\n * @param param the request object\n */\n readNamespacedLimitRangeWithHttpInfo(param, options) {\n return this.api.readNamespacedLimitRangeWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified LimitRange\n * @param param the request object\n */\n readNamespacedLimitRange(param, options) {\n return this.api.readNamespacedLimitRange(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified PersistentVolumeClaim\n * @param param the request object\n */\n readNamespacedPersistentVolumeClaimWithHttpInfo(param, options) {\n return this.api.readNamespacedPersistentVolumeClaimWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified PersistentVolumeClaim\n * @param param the request object\n */\n readNamespacedPersistentVolumeClaim(param, options) {\n return this.api.readNamespacedPersistentVolumeClaim(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified PersistentVolumeClaim\n * @param param the request object\n */\n readNamespacedPersistentVolumeClaimStatusWithHttpInfo(param, options) {\n return this.api.readNamespacedPersistentVolumeClaimStatusWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified PersistentVolumeClaim\n * @param param the request object\n */\n readNamespacedPersistentVolumeClaimStatus(param, options) {\n return this.api.readNamespacedPersistentVolumeClaimStatus(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Pod\n * @param param the request object\n */\n readNamespacedPodWithHttpInfo(param, options) {\n return this.api.readNamespacedPodWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Pod\n * @param param the request object\n */\n readNamespacedPod(param, options) {\n return this.api.readNamespacedPod(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read ephemeralcontainers of the specified Pod\n * @param param the request object\n */\n readNamespacedPodEphemeralcontainersWithHttpInfo(param, options) {\n return this.api.readNamespacedPodEphemeralcontainersWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read ephemeralcontainers of the specified Pod\n * @param param the request object\n */\n readNamespacedPodEphemeralcontainers(param, options) {\n return this.api.readNamespacedPodEphemeralcontainers(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read log of the specified Pod\n * @param param the request object\n */\n readNamespacedPodLogWithHttpInfo(param, options) {\n return this.api.readNamespacedPodLogWithHttpInfo(param.name, param.namespace, param.container, param.follow, param.insecureSkipTLSVerifyBackend, param.limitBytes, param.pretty, param.previous, param.sinceSeconds, param.stream, param.tailLines, param.timestamps, options).toPromise();\n }\n /**\n * read log of the specified Pod\n * @param param the request object\n */\n readNamespacedPodLog(param, options) {\n return this.api.readNamespacedPodLog(param.name, param.namespace, param.container, param.follow, param.insecureSkipTLSVerifyBackend, param.limitBytes, param.pretty, param.previous, param.sinceSeconds, param.stream, param.tailLines, param.timestamps, options).toPromise();\n }\n /**\n * read resize of the specified Pod\n * @param param the request object\n */\n readNamespacedPodResizeWithHttpInfo(param, options) {\n return this.api.readNamespacedPodResizeWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read resize of the specified Pod\n * @param param the request object\n */\n readNamespacedPodResize(param, options) {\n return this.api.readNamespacedPodResize(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified Pod\n * @param param the request object\n */\n readNamespacedPodStatusWithHttpInfo(param, options) {\n return this.api.readNamespacedPodStatusWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified Pod\n * @param param the request object\n */\n readNamespacedPodStatus(param, options) {\n return this.api.readNamespacedPodStatus(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified PodTemplate\n * @param param the request object\n */\n readNamespacedPodTemplateWithHttpInfo(param, options) {\n return this.api.readNamespacedPodTemplateWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified PodTemplate\n * @param param the request object\n */\n readNamespacedPodTemplate(param, options) {\n return this.api.readNamespacedPodTemplate(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ReplicationController\n * @param param the request object\n */\n readNamespacedReplicationControllerWithHttpInfo(param, options) {\n return this.api.readNamespacedReplicationControllerWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ReplicationController\n * @param param the request object\n */\n readNamespacedReplicationController(param, options) {\n return this.api.readNamespacedReplicationController(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read scale of the specified ReplicationController\n * @param param the request object\n */\n readNamespacedReplicationControllerScaleWithHttpInfo(param, options) {\n return this.api.readNamespacedReplicationControllerScaleWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read scale of the specified ReplicationController\n * @param param the request object\n */\n readNamespacedReplicationControllerScale(param, options) {\n return this.api.readNamespacedReplicationControllerScale(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ReplicationController\n * @param param the request object\n */\n readNamespacedReplicationControllerStatusWithHttpInfo(param, options) {\n return this.api.readNamespacedReplicationControllerStatusWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ReplicationController\n * @param param the request object\n */\n readNamespacedReplicationControllerStatus(param, options) {\n return this.api.readNamespacedReplicationControllerStatus(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceQuota\n * @param param the request object\n */\n readNamespacedResourceQuotaWithHttpInfo(param, options) {\n return this.api.readNamespacedResourceQuotaWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceQuota\n * @param param the request object\n */\n readNamespacedResourceQuota(param, options) {\n return this.api.readNamespacedResourceQuota(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ResourceQuota\n * @param param the request object\n */\n readNamespacedResourceQuotaStatusWithHttpInfo(param, options) {\n return this.api.readNamespacedResourceQuotaStatusWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ResourceQuota\n * @param param the request object\n */\n readNamespacedResourceQuotaStatus(param, options) {\n return this.api.readNamespacedResourceQuotaStatus(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Secret\n * @param param the request object\n */\n readNamespacedSecretWithHttpInfo(param, options) {\n return this.api.readNamespacedSecretWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Secret\n * @param param the request object\n */\n readNamespacedSecret(param, options) {\n return this.api.readNamespacedSecret(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Service\n * @param param the request object\n */\n readNamespacedServiceWithHttpInfo(param, options) {\n return this.api.readNamespacedServiceWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Service\n * @param param the request object\n */\n readNamespacedService(param, options) {\n return this.api.readNamespacedService(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ServiceAccount\n * @param param the request object\n */\n readNamespacedServiceAccountWithHttpInfo(param, options) {\n return this.api.readNamespacedServiceAccountWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ServiceAccount\n * @param param the request object\n */\n readNamespacedServiceAccount(param, options) {\n return this.api.readNamespacedServiceAccount(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified Service\n * @param param the request object\n */\n readNamespacedServiceStatusWithHttpInfo(param, options) {\n return this.api.readNamespacedServiceStatusWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified Service\n * @param param the request object\n */\n readNamespacedServiceStatus(param, options) {\n return this.api.readNamespacedServiceStatus(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Node\n * @param param the request object\n */\n readNodeWithHttpInfo(param, options) {\n return this.api.readNodeWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified Node\n * @param param the request object\n */\n readNode(param, options) {\n return this.api.readNode(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified Node\n * @param param the request object\n */\n readNodeStatusWithHttpInfo(param, options) {\n return this.api.readNodeStatusWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified Node\n * @param param the request object\n */\n readNodeStatus(param, options) {\n return this.api.readNodeStatus(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified PersistentVolume\n * @param param the request object\n */\n readPersistentVolumeWithHttpInfo(param, options) {\n return this.api.readPersistentVolumeWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified PersistentVolume\n * @param param the request object\n */\n readPersistentVolume(param, options) {\n return this.api.readPersistentVolume(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified PersistentVolume\n * @param param the request object\n */\n readPersistentVolumeStatusWithHttpInfo(param, options) {\n return this.api.readPersistentVolumeStatusWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified PersistentVolume\n * @param param the request object\n */\n readPersistentVolumeStatus(param, options) {\n return this.api.readPersistentVolumeStatus(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified Namespace\n * @param param the request object\n */\n replaceNamespaceWithHttpInfo(param, options) {\n return this.api.replaceNamespaceWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Namespace\n * @param param the request object\n */\n replaceNamespace(param, options) {\n return this.api.replaceNamespace(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace finalize of the specified Namespace\n * @param param the request object\n */\n replaceNamespaceFinalizeWithHttpInfo(param, options) {\n return this.api.replaceNamespaceFinalizeWithHttpInfo(param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * replace finalize of the specified Namespace\n * @param param the request object\n */\n replaceNamespaceFinalize(param, options) {\n return this.api.replaceNamespaceFinalize(param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.pretty, options).toPromise();\n }\n /**\n * replace status of the specified Namespace\n * @param param the request object\n */\n replaceNamespaceStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespaceStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified Namespace\n * @param param the request object\n */\n replaceNamespaceStatus(param, options) {\n return this.api.replaceNamespaceStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ConfigMap\n * @param param the request object\n */\n replaceNamespacedConfigMapWithHttpInfo(param, options) {\n return this.api.replaceNamespacedConfigMapWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ConfigMap\n * @param param the request object\n */\n replaceNamespacedConfigMap(param, options) {\n return this.api.replaceNamespacedConfigMap(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Endpoints\n * @param param the request object\n */\n replaceNamespacedEndpointsWithHttpInfo(param, options) {\n return this.api.replaceNamespacedEndpointsWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Endpoints\n * @param param the request object\n */\n replaceNamespacedEndpoints(param, options) {\n return this.api.replaceNamespacedEndpoints(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Event\n * @param param the request object\n */\n replaceNamespacedEventWithHttpInfo(param, options) {\n return this.api.replaceNamespacedEventWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Event\n * @param param the request object\n */\n replaceNamespacedEvent(param, options) {\n return this.api.replaceNamespacedEvent(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified LimitRange\n * @param param the request object\n */\n replaceNamespacedLimitRangeWithHttpInfo(param, options) {\n return this.api.replaceNamespacedLimitRangeWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified LimitRange\n * @param param the request object\n */\n replaceNamespacedLimitRange(param, options) {\n return this.api.replaceNamespacedLimitRange(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified PersistentVolumeClaim\n * @param param the request object\n */\n replaceNamespacedPersistentVolumeClaimWithHttpInfo(param, options) {\n return this.api.replaceNamespacedPersistentVolumeClaimWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified PersistentVolumeClaim\n * @param param the request object\n */\n replaceNamespacedPersistentVolumeClaim(param, options) {\n return this.api.replaceNamespacedPersistentVolumeClaim(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified PersistentVolumeClaim\n * @param param the request object\n */\n replaceNamespacedPersistentVolumeClaimStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedPersistentVolumeClaimStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified PersistentVolumeClaim\n * @param param the request object\n */\n replaceNamespacedPersistentVolumeClaimStatus(param, options) {\n return this.api.replaceNamespacedPersistentVolumeClaimStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Pod\n * @param param the request object\n */\n replaceNamespacedPodWithHttpInfo(param, options) {\n return this.api.replaceNamespacedPodWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Pod\n * @param param the request object\n */\n replaceNamespacedPod(param, options) {\n return this.api.replaceNamespacedPod(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace ephemeralcontainers of the specified Pod\n * @param param the request object\n */\n replaceNamespacedPodEphemeralcontainersWithHttpInfo(param, options) {\n return this.api.replaceNamespacedPodEphemeralcontainersWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace ephemeralcontainers of the specified Pod\n * @param param the request object\n */\n replaceNamespacedPodEphemeralcontainers(param, options) {\n return this.api.replaceNamespacedPodEphemeralcontainers(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace resize of the specified Pod\n * @param param the request object\n */\n replaceNamespacedPodResizeWithHttpInfo(param, options) {\n return this.api.replaceNamespacedPodResizeWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace resize of the specified Pod\n * @param param the request object\n */\n replaceNamespacedPodResize(param, options) {\n return this.api.replaceNamespacedPodResize(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified Pod\n * @param param the request object\n */\n replaceNamespacedPodStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedPodStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified Pod\n * @param param the request object\n */\n replaceNamespacedPodStatus(param, options) {\n return this.api.replaceNamespacedPodStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified PodTemplate\n * @param param the request object\n */\n replaceNamespacedPodTemplateWithHttpInfo(param, options) {\n return this.api.replaceNamespacedPodTemplateWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified PodTemplate\n * @param param the request object\n */\n replaceNamespacedPodTemplate(param, options) {\n return this.api.replaceNamespacedPodTemplate(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ReplicationController\n * @param param the request object\n */\n replaceNamespacedReplicationControllerWithHttpInfo(param, options) {\n return this.api.replaceNamespacedReplicationControllerWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ReplicationController\n * @param param the request object\n */\n replaceNamespacedReplicationController(param, options) {\n return this.api.replaceNamespacedReplicationController(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace scale of the specified ReplicationController\n * @param param the request object\n */\n replaceNamespacedReplicationControllerScaleWithHttpInfo(param, options) {\n return this.api.replaceNamespacedReplicationControllerScaleWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace scale of the specified ReplicationController\n * @param param the request object\n */\n replaceNamespacedReplicationControllerScale(param, options) {\n return this.api.replaceNamespacedReplicationControllerScale(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ReplicationController\n * @param param the request object\n */\n replaceNamespacedReplicationControllerStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedReplicationControllerStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ReplicationController\n * @param param the request object\n */\n replaceNamespacedReplicationControllerStatus(param, options) {\n return this.api.replaceNamespacedReplicationControllerStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceQuota\n * @param param the request object\n */\n replaceNamespacedResourceQuotaWithHttpInfo(param, options) {\n return this.api.replaceNamespacedResourceQuotaWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceQuota\n * @param param the request object\n */\n replaceNamespacedResourceQuota(param, options) {\n return this.api.replaceNamespacedResourceQuota(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ResourceQuota\n * @param param the request object\n */\n replaceNamespacedResourceQuotaStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedResourceQuotaStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ResourceQuota\n * @param param the request object\n */\n replaceNamespacedResourceQuotaStatus(param, options) {\n return this.api.replaceNamespacedResourceQuotaStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Secret\n * @param param the request object\n */\n replaceNamespacedSecretWithHttpInfo(param, options) {\n return this.api.replaceNamespacedSecretWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Secret\n * @param param the request object\n */\n replaceNamespacedSecret(param, options) {\n return this.api.replaceNamespacedSecret(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Service\n * @param param the request object\n */\n replaceNamespacedServiceWithHttpInfo(param, options) {\n return this.api.replaceNamespacedServiceWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Service\n * @param param the request object\n */\n replaceNamespacedService(param, options) {\n return this.api.replaceNamespacedService(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ServiceAccount\n * @param param the request object\n */\n replaceNamespacedServiceAccountWithHttpInfo(param, options) {\n return this.api.replaceNamespacedServiceAccountWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ServiceAccount\n * @param param the request object\n */\n replaceNamespacedServiceAccount(param, options) {\n return this.api.replaceNamespacedServiceAccount(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified Service\n * @param param the request object\n */\n replaceNamespacedServiceStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedServiceStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified Service\n * @param param the request object\n */\n replaceNamespacedServiceStatus(param, options) {\n return this.api.replaceNamespacedServiceStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Node\n * @param param the request object\n */\n replaceNodeWithHttpInfo(param, options) {\n return this.api.replaceNodeWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Node\n * @param param the request object\n */\n replaceNode(param, options) {\n return this.api.replaceNode(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified Node\n * @param param the request object\n */\n replaceNodeStatusWithHttpInfo(param, options) {\n return this.api.replaceNodeStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified Node\n * @param param the request object\n */\n replaceNodeStatus(param, options) {\n return this.api.replaceNodeStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified PersistentVolume\n * @param param the request object\n */\n replacePersistentVolumeWithHttpInfo(param, options) {\n return this.api.replacePersistentVolumeWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified PersistentVolume\n * @param param the request object\n */\n replacePersistentVolume(param, options) {\n return this.api.replacePersistentVolume(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified PersistentVolume\n * @param param the request object\n */\n replacePersistentVolumeStatusWithHttpInfo(param, options) {\n return this.api.replacePersistentVolumeStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified PersistentVolume\n * @param param the request object\n */\n replacePersistentVolumeStatus(param, options) {\n return this.api.replacePersistentVolumeStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableCustomObjectsApi } from \"./ObservableAPI.js\";\nexport class ObjectCustomObjectsApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableCustomObjectsApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * Creates a cluster scoped Custom object\n * @param param the request object\n */\n createClusterCustomObjectWithHttpInfo(param, options) {\n return this.api.createClusterCustomObjectWithHttpInfo(param.group, param.version, param.plural, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * Creates a cluster scoped Custom object\n * @param param the request object\n */\n createClusterCustomObject(param, options) {\n return this.api.createClusterCustomObject(param.group, param.version, param.plural, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * Creates a namespace scoped Custom object\n * @param param the request object\n */\n createNamespacedCustomObjectWithHttpInfo(param, options) {\n return this.api.createNamespacedCustomObjectWithHttpInfo(param.group, param.version, param.namespace, param.plural, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * Creates a namespace scoped Custom object\n * @param param the request object\n */\n createNamespacedCustomObject(param, options) {\n return this.api.createNamespacedCustomObject(param.group, param.version, param.namespace, param.plural, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * Deletes the specified cluster scoped custom object\n * @param param the request object\n */\n deleteClusterCustomObjectWithHttpInfo(param, options) {\n return this.api.deleteClusterCustomObjectWithHttpInfo(param.group, param.version, param.plural, param.name, param.gracePeriodSeconds, param.orphanDependents, param.propagationPolicy, param.dryRun, param.body, options).toPromise();\n }\n /**\n * Deletes the specified cluster scoped custom object\n * @param param the request object\n */\n deleteClusterCustomObject(param, options) {\n return this.api.deleteClusterCustomObject(param.group, param.version, param.plural, param.name, param.gracePeriodSeconds, param.orphanDependents, param.propagationPolicy, param.dryRun, param.body, options).toPromise();\n }\n /**\n * Delete collection of cluster scoped custom objects\n * @param param the request object\n */\n deleteCollectionClusterCustomObjectWithHttpInfo(param, options) {\n return this.api.deleteCollectionClusterCustomObjectWithHttpInfo(param.group, param.version, param.plural, param.pretty, param.labelSelector, param.gracePeriodSeconds, param.orphanDependents, param.propagationPolicy, param.dryRun, param.body, options).toPromise();\n }\n /**\n * Delete collection of cluster scoped custom objects\n * @param param the request object\n */\n deleteCollectionClusterCustomObject(param, options) {\n return this.api.deleteCollectionClusterCustomObject(param.group, param.version, param.plural, param.pretty, param.labelSelector, param.gracePeriodSeconds, param.orphanDependents, param.propagationPolicy, param.dryRun, param.body, options).toPromise();\n }\n /**\n * Delete collection of namespace scoped custom objects\n * @param param the request object\n */\n deleteCollectionNamespacedCustomObjectWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedCustomObjectWithHttpInfo(param.group, param.version, param.namespace, param.plural, param.pretty, param.labelSelector, param.gracePeriodSeconds, param.orphanDependents, param.propagationPolicy, param.dryRun, param.fieldSelector, param.body, options).toPromise();\n }\n /**\n * Delete collection of namespace scoped custom objects\n * @param param the request object\n */\n deleteCollectionNamespacedCustomObject(param, options) {\n return this.api.deleteCollectionNamespacedCustomObject(param.group, param.version, param.namespace, param.plural, param.pretty, param.labelSelector, param.gracePeriodSeconds, param.orphanDependents, param.propagationPolicy, param.dryRun, param.fieldSelector, param.body, options).toPromise();\n }\n /**\n * Deletes the specified namespace scoped custom object\n * @param param the request object\n */\n deleteNamespacedCustomObjectWithHttpInfo(param, options) {\n return this.api.deleteNamespacedCustomObjectWithHttpInfo(param.group, param.version, param.namespace, param.plural, param.name, param.gracePeriodSeconds, param.orphanDependents, param.propagationPolicy, param.dryRun, param.body, options).toPromise();\n }\n /**\n * Deletes the specified namespace scoped custom object\n * @param param the request object\n */\n deleteNamespacedCustomObject(param, options) {\n return this.api.deleteNamespacedCustomObject(param.group, param.version, param.namespace, param.plural, param.name, param.gracePeriodSeconds, param.orphanDependents, param.propagationPolicy, param.dryRun, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param, options) {\n return this.api.getAPIResourcesWithHttpInfo(param.group, param.version, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param, options) {\n return this.api.getAPIResources(param.group, param.version, options).toPromise();\n }\n /**\n * Returns a cluster scoped custom object\n * @param param the request object\n */\n getClusterCustomObjectWithHttpInfo(param, options) {\n return this.api.getClusterCustomObjectWithHttpInfo(param.group, param.version, param.plural, param.name, options).toPromise();\n }\n /**\n * Returns a cluster scoped custom object\n * @param param the request object\n */\n getClusterCustomObject(param, options) {\n return this.api.getClusterCustomObject(param.group, param.version, param.plural, param.name, options).toPromise();\n }\n /**\n * read scale of the specified custom object\n * @param param the request object\n */\n getClusterCustomObjectScaleWithHttpInfo(param, options) {\n return this.api.getClusterCustomObjectScaleWithHttpInfo(param.group, param.version, param.plural, param.name, options).toPromise();\n }\n /**\n * read scale of the specified custom object\n * @param param the request object\n */\n getClusterCustomObjectScale(param, options) {\n return this.api.getClusterCustomObjectScale(param.group, param.version, param.plural, param.name, options).toPromise();\n }\n /**\n * read status of the specified cluster scoped custom object\n * @param param the request object\n */\n getClusterCustomObjectStatusWithHttpInfo(param, options) {\n return this.api.getClusterCustomObjectStatusWithHttpInfo(param.group, param.version, param.plural, param.name, options).toPromise();\n }\n /**\n * read status of the specified cluster scoped custom object\n * @param param the request object\n */\n getClusterCustomObjectStatus(param, options) {\n return this.api.getClusterCustomObjectStatus(param.group, param.version, param.plural, param.name, options).toPromise();\n }\n /**\n * Returns a namespace scoped custom object\n * @param param the request object\n */\n getNamespacedCustomObjectWithHttpInfo(param, options) {\n return this.api.getNamespacedCustomObjectWithHttpInfo(param.group, param.version, param.namespace, param.plural, param.name, options).toPromise();\n }\n /**\n * Returns a namespace scoped custom object\n * @param param the request object\n */\n getNamespacedCustomObject(param, options) {\n return this.api.getNamespacedCustomObject(param.group, param.version, param.namespace, param.plural, param.name, options).toPromise();\n }\n /**\n * read scale of the specified namespace scoped custom object\n * @param param the request object\n */\n getNamespacedCustomObjectScaleWithHttpInfo(param, options) {\n return this.api.getNamespacedCustomObjectScaleWithHttpInfo(param.group, param.version, param.namespace, param.plural, param.name, options).toPromise();\n }\n /**\n * read scale of the specified namespace scoped custom object\n * @param param the request object\n */\n getNamespacedCustomObjectScale(param, options) {\n return this.api.getNamespacedCustomObjectScale(param.group, param.version, param.namespace, param.plural, param.name, options).toPromise();\n }\n /**\n * read status of the specified namespace scoped custom object\n * @param param the request object\n */\n getNamespacedCustomObjectStatusWithHttpInfo(param, options) {\n return this.api.getNamespacedCustomObjectStatusWithHttpInfo(param.group, param.version, param.namespace, param.plural, param.name, options).toPromise();\n }\n /**\n * read status of the specified namespace scoped custom object\n * @param param the request object\n */\n getNamespacedCustomObjectStatus(param, options) {\n return this.api.getNamespacedCustomObjectStatus(param.group, param.version, param.namespace, param.plural, param.name, options).toPromise();\n }\n /**\n * list or watch cluster scoped custom objects\n * @param param the request object\n */\n listClusterCustomObjectWithHttpInfo(param, options) {\n return this.api.listClusterCustomObjectWithHttpInfo(param.group, param.version, param.plural, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch cluster scoped custom objects\n * @param param the request object\n */\n listClusterCustomObject(param, options) {\n return this.api.listClusterCustomObject(param.group, param.version, param.plural, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch namespace scoped custom objects\n * @param param the request object\n */\n listCustomObjectForAllNamespacesWithHttpInfo(param, options) {\n return this.api.listCustomObjectForAllNamespacesWithHttpInfo(param.group, param.version, param.plural, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch namespace scoped custom objects\n * @param param the request object\n */\n listCustomObjectForAllNamespaces(param, options) {\n return this.api.listCustomObjectForAllNamespaces(param.group, param.version, param.plural, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch namespace scoped custom objects\n * @param param the request object\n */\n listNamespacedCustomObjectWithHttpInfo(param, options) {\n return this.api.listNamespacedCustomObjectWithHttpInfo(param.group, param.version, param.namespace, param.plural, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch namespace scoped custom objects\n * @param param the request object\n */\n listNamespacedCustomObject(param, options) {\n return this.api.listNamespacedCustomObject(param.group, param.version, param.namespace, param.plural, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * patch the specified cluster scoped custom object\n * @param param the request object\n */\n patchClusterCustomObjectWithHttpInfo(param, options) {\n return this.api.patchClusterCustomObjectWithHttpInfo(param.group, param.version, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * patch the specified cluster scoped custom object\n * @param param the request object\n */\n patchClusterCustomObject(param, options) {\n return this.api.patchClusterCustomObject(param.group, param.version, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update scale of the specified cluster scoped custom object\n * @param param the request object\n */\n patchClusterCustomObjectScaleWithHttpInfo(param, options) {\n return this.api.patchClusterCustomObjectScaleWithHttpInfo(param.group, param.version, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update scale of the specified cluster scoped custom object\n * @param param the request object\n */\n patchClusterCustomObjectScale(param, options) {\n return this.api.patchClusterCustomObjectScale(param.group, param.version, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified cluster scoped custom object\n * @param param the request object\n */\n patchClusterCustomObjectStatusWithHttpInfo(param, options) {\n return this.api.patchClusterCustomObjectStatusWithHttpInfo(param.group, param.version, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified cluster scoped custom object\n * @param param the request object\n */\n patchClusterCustomObjectStatus(param, options) {\n return this.api.patchClusterCustomObjectStatus(param.group, param.version, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * patch the specified namespace scoped custom object\n * @param param the request object\n */\n patchNamespacedCustomObjectWithHttpInfo(param, options) {\n return this.api.patchNamespacedCustomObjectWithHttpInfo(param.group, param.version, param.namespace, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * patch the specified namespace scoped custom object\n * @param param the request object\n */\n patchNamespacedCustomObject(param, options) {\n return this.api.patchNamespacedCustomObject(param.group, param.version, param.namespace, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update scale of the specified namespace scoped custom object\n * @param param the request object\n */\n patchNamespacedCustomObjectScaleWithHttpInfo(param, options) {\n return this.api.patchNamespacedCustomObjectScaleWithHttpInfo(param.group, param.version, param.namespace, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update scale of the specified namespace scoped custom object\n * @param param the request object\n */\n patchNamespacedCustomObjectScale(param, options) {\n return this.api.patchNamespacedCustomObjectScale(param.group, param.version, param.namespace, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified namespace scoped custom object\n * @param param the request object\n */\n patchNamespacedCustomObjectStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedCustomObjectStatusWithHttpInfo(param.group, param.version, param.namespace, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified namespace scoped custom object\n * @param param the request object\n */\n patchNamespacedCustomObjectStatus(param, options) {\n return this.api.patchNamespacedCustomObjectStatus(param.group, param.version, param.namespace, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * replace the specified cluster scoped custom object\n * @param param the request object\n */\n replaceClusterCustomObjectWithHttpInfo(param, options) {\n return this.api.replaceClusterCustomObjectWithHttpInfo(param.group, param.version, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified cluster scoped custom object\n * @param param the request object\n */\n replaceClusterCustomObject(param, options) {\n return this.api.replaceClusterCustomObject(param.group, param.version, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace scale of the specified cluster scoped custom object\n * @param param the request object\n */\n replaceClusterCustomObjectScaleWithHttpInfo(param, options) {\n return this.api.replaceClusterCustomObjectScaleWithHttpInfo(param.group, param.version, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace scale of the specified cluster scoped custom object\n * @param param the request object\n */\n replaceClusterCustomObjectScale(param, options) {\n return this.api.replaceClusterCustomObjectScale(param.group, param.version, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the cluster scoped specified custom object\n * @param param the request object\n */\n replaceClusterCustomObjectStatusWithHttpInfo(param, options) {\n return this.api.replaceClusterCustomObjectStatusWithHttpInfo(param.group, param.version, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the cluster scoped specified custom object\n * @param param the request object\n */\n replaceClusterCustomObjectStatus(param, options) {\n return this.api.replaceClusterCustomObjectStatus(param.group, param.version, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified namespace scoped custom object\n * @param param the request object\n */\n replaceNamespacedCustomObjectWithHttpInfo(param, options) {\n return this.api.replaceNamespacedCustomObjectWithHttpInfo(param.group, param.version, param.namespace, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified namespace scoped custom object\n * @param param the request object\n */\n replaceNamespacedCustomObject(param, options) {\n return this.api.replaceNamespacedCustomObject(param.group, param.version, param.namespace, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace scale of the specified namespace scoped custom object\n * @param param the request object\n */\n replaceNamespacedCustomObjectScaleWithHttpInfo(param, options) {\n return this.api.replaceNamespacedCustomObjectScaleWithHttpInfo(param.group, param.version, param.namespace, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace scale of the specified namespace scoped custom object\n * @param param the request object\n */\n replaceNamespacedCustomObjectScale(param, options) {\n return this.api.replaceNamespacedCustomObjectScale(param.group, param.version, param.namespace, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified namespace scoped custom object\n * @param param the request object\n */\n replaceNamespacedCustomObjectStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedCustomObjectStatusWithHttpInfo(param.group, param.version, param.namespace, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified namespace scoped custom object\n * @param param the request object\n */\n replaceNamespacedCustomObjectStatus(param, options) {\n return this.api.replaceNamespacedCustomObjectStatus(param.group, param.version, param.namespace, param.plural, param.name, param.body, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableDiscoveryApi } from \"./ObservableAPI.js\";\nexport class ObjectDiscoveryApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableDiscoveryApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableDiscoveryV1Api } from \"./ObservableAPI.js\";\nexport class ObjectDiscoveryV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableDiscoveryV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create an EndpointSlice\n * @param param the request object\n */\n createNamespacedEndpointSliceWithHttpInfo(param, options) {\n return this.api.createNamespacedEndpointSliceWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create an EndpointSlice\n * @param param the request object\n */\n createNamespacedEndpointSlice(param, options) {\n return this.api.createNamespacedEndpointSlice(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of EndpointSlice\n * @param param the request object\n */\n deleteCollectionNamespacedEndpointSliceWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedEndpointSliceWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of EndpointSlice\n * @param param the request object\n */\n deleteCollectionNamespacedEndpointSlice(param, options) {\n return this.api.deleteCollectionNamespacedEndpointSlice(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete an EndpointSlice\n * @param param the request object\n */\n deleteNamespacedEndpointSliceWithHttpInfo(param, options) {\n return this.api.deleteNamespacedEndpointSliceWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete an EndpointSlice\n * @param param the request object\n */\n deleteNamespacedEndpointSlice(param, options) {\n return this.api.deleteNamespacedEndpointSlice(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind EndpointSlice\n * @param param the request object\n */\n listEndpointSliceForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listEndpointSliceForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind EndpointSlice\n * @param param the request object\n */\n listEndpointSliceForAllNamespaces(param = {}, options) {\n return this.api.listEndpointSliceForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind EndpointSlice\n * @param param the request object\n */\n listNamespacedEndpointSliceWithHttpInfo(param, options) {\n return this.api.listNamespacedEndpointSliceWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind EndpointSlice\n * @param param the request object\n */\n listNamespacedEndpointSlice(param, options) {\n return this.api.listNamespacedEndpointSlice(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified EndpointSlice\n * @param param the request object\n */\n patchNamespacedEndpointSliceWithHttpInfo(param, options) {\n return this.api.patchNamespacedEndpointSliceWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified EndpointSlice\n * @param param the request object\n */\n patchNamespacedEndpointSlice(param, options) {\n return this.api.patchNamespacedEndpointSlice(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified EndpointSlice\n * @param param the request object\n */\n readNamespacedEndpointSliceWithHttpInfo(param, options) {\n return this.api.readNamespacedEndpointSliceWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified EndpointSlice\n * @param param the request object\n */\n readNamespacedEndpointSlice(param, options) {\n return this.api.readNamespacedEndpointSlice(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * replace the specified EndpointSlice\n * @param param the request object\n */\n replaceNamespacedEndpointSliceWithHttpInfo(param, options) {\n return this.api.replaceNamespacedEndpointSliceWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified EndpointSlice\n * @param param the request object\n */\n replaceNamespacedEndpointSlice(param, options) {\n return this.api.replaceNamespacedEndpointSlice(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableEventsApi } from \"./ObservableAPI.js\";\nexport class ObjectEventsApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableEventsApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableEventsV1Api } from \"./ObservableAPI.js\";\nexport class ObjectEventsV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableEventsV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create an Event\n * @param param the request object\n */\n createNamespacedEventWithHttpInfo(param, options) {\n return this.api.createNamespacedEventWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create an Event\n * @param param the request object\n */\n createNamespacedEvent(param, options) {\n return this.api.createNamespacedEvent(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of Event\n * @param param the request object\n */\n deleteCollectionNamespacedEventWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedEventWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Event\n * @param param the request object\n */\n deleteCollectionNamespacedEvent(param, options) {\n return this.api.deleteCollectionNamespacedEvent(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete an Event\n * @param param the request object\n */\n deleteNamespacedEventWithHttpInfo(param, options) {\n return this.api.deleteNamespacedEventWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete an Event\n * @param param the request object\n */\n deleteNamespacedEvent(param, options) {\n return this.api.deleteNamespacedEvent(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind Event\n * @param param the request object\n */\n listEventForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listEventForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Event\n * @param param the request object\n */\n listEventForAllNamespaces(param = {}, options) {\n return this.api.listEventForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Event\n * @param param the request object\n */\n listNamespacedEventWithHttpInfo(param, options) {\n return this.api.listNamespacedEventWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Event\n * @param param the request object\n */\n listNamespacedEvent(param, options) {\n return this.api.listNamespacedEvent(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified Event\n * @param param the request object\n */\n patchNamespacedEventWithHttpInfo(param, options) {\n return this.api.patchNamespacedEventWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Event\n * @param param the request object\n */\n patchNamespacedEvent(param, options) {\n return this.api.patchNamespacedEvent(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified Event\n * @param param the request object\n */\n readNamespacedEventWithHttpInfo(param, options) {\n return this.api.readNamespacedEventWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Event\n * @param param the request object\n */\n readNamespacedEvent(param, options) {\n return this.api.readNamespacedEvent(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * replace the specified Event\n * @param param the request object\n */\n replaceNamespacedEventWithHttpInfo(param, options) {\n return this.api.replaceNamespacedEventWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Event\n * @param param the request object\n */\n replaceNamespacedEvent(param, options) {\n return this.api.replaceNamespacedEvent(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableFlowcontrolApiserverApi } from \"./ObservableAPI.js\";\nexport class ObjectFlowcontrolApiserverApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableFlowcontrolApiserverApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableFlowcontrolApiserverV1Api } from \"./ObservableAPI.js\";\nexport class ObjectFlowcontrolApiserverV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableFlowcontrolApiserverV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a FlowSchema\n * @param param the request object\n */\n createFlowSchemaWithHttpInfo(param, options) {\n return this.api.createFlowSchemaWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a FlowSchema\n * @param param the request object\n */\n createFlowSchema(param, options) {\n return this.api.createFlowSchema(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a PriorityLevelConfiguration\n * @param param the request object\n */\n createPriorityLevelConfigurationWithHttpInfo(param, options) {\n return this.api.createPriorityLevelConfigurationWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a PriorityLevelConfiguration\n * @param param the request object\n */\n createPriorityLevelConfiguration(param, options) {\n return this.api.createPriorityLevelConfiguration(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of FlowSchema\n * @param param the request object\n */\n deleteCollectionFlowSchemaWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionFlowSchemaWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of FlowSchema\n * @param param the request object\n */\n deleteCollectionFlowSchema(param = {}, options) {\n return this.api.deleteCollectionFlowSchema(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of PriorityLevelConfiguration\n * @param param the request object\n */\n deleteCollectionPriorityLevelConfigurationWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionPriorityLevelConfigurationWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of PriorityLevelConfiguration\n * @param param the request object\n */\n deleteCollectionPriorityLevelConfiguration(param = {}, options) {\n return this.api.deleteCollectionPriorityLevelConfiguration(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a FlowSchema\n * @param param the request object\n */\n deleteFlowSchemaWithHttpInfo(param, options) {\n return this.api.deleteFlowSchemaWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a FlowSchema\n * @param param the request object\n */\n deleteFlowSchema(param, options) {\n return this.api.deleteFlowSchema(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a PriorityLevelConfiguration\n * @param param the request object\n */\n deletePriorityLevelConfigurationWithHttpInfo(param, options) {\n return this.api.deletePriorityLevelConfigurationWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a PriorityLevelConfiguration\n * @param param the request object\n */\n deletePriorityLevelConfiguration(param, options) {\n return this.api.deletePriorityLevelConfiguration(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind FlowSchema\n * @param param the request object\n */\n listFlowSchemaWithHttpInfo(param = {}, options) {\n return this.api.listFlowSchemaWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind FlowSchema\n * @param param the request object\n */\n listFlowSchema(param = {}, options) {\n return this.api.listFlowSchema(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind PriorityLevelConfiguration\n * @param param the request object\n */\n listPriorityLevelConfigurationWithHttpInfo(param = {}, options) {\n return this.api.listPriorityLevelConfigurationWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind PriorityLevelConfiguration\n * @param param the request object\n */\n listPriorityLevelConfiguration(param = {}, options) {\n return this.api.listPriorityLevelConfiguration(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified FlowSchema\n * @param param the request object\n */\n patchFlowSchemaWithHttpInfo(param, options) {\n return this.api.patchFlowSchemaWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified FlowSchema\n * @param param the request object\n */\n patchFlowSchema(param, options) {\n return this.api.patchFlowSchema(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified FlowSchema\n * @param param the request object\n */\n patchFlowSchemaStatusWithHttpInfo(param, options) {\n return this.api.patchFlowSchemaStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified FlowSchema\n * @param param the request object\n */\n patchFlowSchemaStatus(param, options) {\n return this.api.patchFlowSchemaStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified PriorityLevelConfiguration\n * @param param the request object\n */\n patchPriorityLevelConfigurationWithHttpInfo(param, options) {\n return this.api.patchPriorityLevelConfigurationWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified PriorityLevelConfiguration\n * @param param the request object\n */\n patchPriorityLevelConfiguration(param, options) {\n return this.api.patchPriorityLevelConfiguration(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified PriorityLevelConfiguration\n * @param param the request object\n */\n patchPriorityLevelConfigurationStatusWithHttpInfo(param, options) {\n return this.api.patchPriorityLevelConfigurationStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified PriorityLevelConfiguration\n * @param param the request object\n */\n patchPriorityLevelConfigurationStatus(param, options) {\n return this.api.patchPriorityLevelConfigurationStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified FlowSchema\n * @param param the request object\n */\n readFlowSchemaWithHttpInfo(param, options) {\n return this.api.readFlowSchemaWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified FlowSchema\n * @param param the request object\n */\n readFlowSchema(param, options) {\n return this.api.readFlowSchema(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified FlowSchema\n * @param param the request object\n */\n readFlowSchemaStatusWithHttpInfo(param, options) {\n return this.api.readFlowSchemaStatusWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified FlowSchema\n * @param param the request object\n */\n readFlowSchemaStatus(param, options) {\n return this.api.readFlowSchemaStatus(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified PriorityLevelConfiguration\n * @param param the request object\n */\n readPriorityLevelConfigurationWithHttpInfo(param, options) {\n return this.api.readPriorityLevelConfigurationWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified PriorityLevelConfiguration\n * @param param the request object\n */\n readPriorityLevelConfiguration(param, options) {\n return this.api.readPriorityLevelConfiguration(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified PriorityLevelConfiguration\n * @param param the request object\n */\n readPriorityLevelConfigurationStatusWithHttpInfo(param, options) {\n return this.api.readPriorityLevelConfigurationStatusWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified PriorityLevelConfiguration\n * @param param the request object\n */\n readPriorityLevelConfigurationStatus(param, options) {\n return this.api.readPriorityLevelConfigurationStatus(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified FlowSchema\n * @param param the request object\n */\n replaceFlowSchemaWithHttpInfo(param, options) {\n return this.api.replaceFlowSchemaWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified FlowSchema\n * @param param the request object\n */\n replaceFlowSchema(param, options) {\n return this.api.replaceFlowSchema(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified FlowSchema\n * @param param the request object\n */\n replaceFlowSchemaStatusWithHttpInfo(param, options) {\n return this.api.replaceFlowSchemaStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified FlowSchema\n * @param param the request object\n */\n replaceFlowSchemaStatus(param, options) {\n return this.api.replaceFlowSchemaStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified PriorityLevelConfiguration\n * @param param the request object\n */\n replacePriorityLevelConfigurationWithHttpInfo(param, options) {\n return this.api.replacePriorityLevelConfigurationWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified PriorityLevelConfiguration\n * @param param the request object\n */\n replacePriorityLevelConfiguration(param, options) {\n return this.api.replacePriorityLevelConfiguration(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified PriorityLevelConfiguration\n * @param param the request object\n */\n replacePriorityLevelConfigurationStatusWithHttpInfo(param, options) {\n return this.api.replacePriorityLevelConfigurationStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified PriorityLevelConfiguration\n * @param param the request object\n */\n replacePriorityLevelConfigurationStatus(param, options) {\n return this.api.replacePriorityLevelConfigurationStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableInternalApiserverApi } from \"./ObservableAPI.js\";\nexport class ObjectInternalApiserverApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableInternalApiserverApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableInternalApiserverV1alpha1Api } from \"./ObservableAPI.js\";\nexport class ObjectInternalApiserverV1alpha1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableInternalApiserverV1alpha1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a StorageVersion\n * @param param the request object\n */\n createStorageVersionWithHttpInfo(param, options) {\n return this.api.createStorageVersionWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a StorageVersion\n * @param param the request object\n */\n createStorageVersion(param, options) {\n return this.api.createStorageVersion(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of StorageVersion\n * @param param the request object\n */\n deleteCollectionStorageVersionWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionStorageVersionWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of StorageVersion\n * @param param the request object\n */\n deleteCollectionStorageVersion(param = {}, options) {\n return this.api.deleteCollectionStorageVersion(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a StorageVersion\n * @param param the request object\n */\n deleteStorageVersionWithHttpInfo(param, options) {\n return this.api.deleteStorageVersionWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a StorageVersion\n * @param param the request object\n */\n deleteStorageVersion(param, options) {\n return this.api.deleteStorageVersion(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind StorageVersion\n * @param param the request object\n */\n listStorageVersionWithHttpInfo(param = {}, options) {\n return this.api.listStorageVersionWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind StorageVersion\n * @param param the request object\n */\n listStorageVersion(param = {}, options) {\n return this.api.listStorageVersion(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified StorageVersion\n * @param param the request object\n */\n patchStorageVersionWithHttpInfo(param, options) {\n return this.api.patchStorageVersionWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified StorageVersion\n * @param param the request object\n */\n patchStorageVersion(param, options) {\n return this.api.patchStorageVersion(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified StorageVersion\n * @param param the request object\n */\n patchStorageVersionStatusWithHttpInfo(param, options) {\n return this.api.patchStorageVersionStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified StorageVersion\n * @param param the request object\n */\n patchStorageVersionStatus(param, options) {\n return this.api.patchStorageVersionStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified StorageVersion\n * @param param the request object\n */\n readStorageVersionWithHttpInfo(param, options) {\n return this.api.readStorageVersionWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified StorageVersion\n * @param param the request object\n */\n readStorageVersion(param, options) {\n return this.api.readStorageVersion(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified StorageVersion\n * @param param the request object\n */\n readStorageVersionStatusWithHttpInfo(param, options) {\n return this.api.readStorageVersionStatusWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified StorageVersion\n * @param param the request object\n */\n readStorageVersionStatus(param, options) {\n return this.api.readStorageVersionStatus(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified StorageVersion\n * @param param the request object\n */\n replaceStorageVersionWithHttpInfo(param, options) {\n return this.api.replaceStorageVersionWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified StorageVersion\n * @param param the request object\n */\n replaceStorageVersion(param, options) {\n return this.api.replaceStorageVersion(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified StorageVersion\n * @param param the request object\n */\n replaceStorageVersionStatusWithHttpInfo(param, options) {\n return this.api.replaceStorageVersionStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified StorageVersion\n * @param param the request object\n */\n replaceStorageVersionStatus(param, options) {\n return this.api.replaceStorageVersionStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableLogsApi } from \"./ObservableAPI.js\";\nexport class ObjectLogsApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableLogsApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * @param param the request object\n */\n logFileHandlerWithHttpInfo(param, options) {\n return this.api.logFileHandlerWithHttpInfo(param.logpath, options).toPromise();\n }\n /**\n * @param param the request object\n */\n logFileHandler(param, options) {\n return this.api.logFileHandler(param.logpath, options).toPromise();\n }\n /**\n * @param param the request object\n */\n logFileListHandlerWithHttpInfo(param = {}, options) {\n return this.api.logFileListHandlerWithHttpInfo(options).toPromise();\n }\n /**\n * @param param the request object\n */\n logFileListHandler(param = {}, options) {\n return this.api.logFileListHandler(options).toPromise();\n }\n}\nimport { ObservableNetworkingApi } from \"./ObservableAPI.js\";\nexport class ObjectNetworkingApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableNetworkingApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableNetworkingV1Api } from \"./ObservableAPI.js\";\nexport class ObjectNetworkingV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableNetworkingV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create an IPAddress\n * @param param the request object\n */\n createIPAddressWithHttpInfo(param, options) {\n return this.api.createIPAddressWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create an IPAddress\n * @param param the request object\n */\n createIPAddress(param, options) {\n return this.api.createIPAddress(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create an IngressClass\n * @param param the request object\n */\n createIngressClassWithHttpInfo(param, options) {\n return this.api.createIngressClassWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create an IngressClass\n * @param param the request object\n */\n createIngressClass(param, options) {\n return this.api.createIngressClass(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create an Ingress\n * @param param the request object\n */\n createNamespacedIngressWithHttpInfo(param, options) {\n return this.api.createNamespacedIngressWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create an Ingress\n * @param param the request object\n */\n createNamespacedIngress(param, options) {\n return this.api.createNamespacedIngress(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a NetworkPolicy\n * @param param the request object\n */\n createNamespacedNetworkPolicyWithHttpInfo(param, options) {\n return this.api.createNamespacedNetworkPolicyWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a NetworkPolicy\n * @param param the request object\n */\n createNamespacedNetworkPolicy(param, options) {\n return this.api.createNamespacedNetworkPolicy(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ServiceCIDR\n * @param param the request object\n */\n createServiceCIDRWithHttpInfo(param, options) {\n return this.api.createServiceCIDRWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ServiceCIDR\n * @param param the request object\n */\n createServiceCIDR(param, options) {\n return this.api.createServiceCIDR(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of IPAddress\n * @param param the request object\n */\n deleteCollectionIPAddressWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionIPAddressWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of IPAddress\n * @param param the request object\n */\n deleteCollectionIPAddress(param = {}, options) {\n return this.api.deleteCollectionIPAddress(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of IngressClass\n * @param param the request object\n */\n deleteCollectionIngressClassWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionIngressClassWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of IngressClass\n * @param param the request object\n */\n deleteCollectionIngressClass(param = {}, options) {\n return this.api.deleteCollectionIngressClass(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Ingress\n * @param param the request object\n */\n deleteCollectionNamespacedIngressWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedIngressWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Ingress\n * @param param the request object\n */\n deleteCollectionNamespacedIngress(param, options) {\n return this.api.deleteCollectionNamespacedIngress(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of NetworkPolicy\n * @param param the request object\n */\n deleteCollectionNamespacedNetworkPolicyWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedNetworkPolicyWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of NetworkPolicy\n * @param param the request object\n */\n deleteCollectionNamespacedNetworkPolicy(param, options) {\n return this.api.deleteCollectionNamespacedNetworkPolicy(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ServiceCIDR\n * @param param the request object\n */\n deleteCollectionServiceCIDRWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionServiceCIDRWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ServiceCIDR\n * @param param the request object\n */\n deleteCollectionServiceCIDR(param = {}, options) {\n return this.api.deleteCollectionServiceCIDR(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete an IPAddress\n * @param param the request object\n */\n deleteIPAddressWithHttpInfo(param, options) {\n return this.api.deleteIPAddressWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete an IPAddress\n * @param param the request object\n */\n deleteIPAddress(param, options) {\n return this.api.deleteIPAddress(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete an IngressClass\n * @param param the request object\n */\n deleteIngressClassWithHttpInfo(param, options) {\n return this.api.deleteIngressClassWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete an IngressClass\n * @param param the request object\n */\n deleteIngressClass(param, options) {\n return this.api.deleteIngressClass(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete an Ingress\n * @param param the request object\n */\n deleteNamespacedIngressWithHttpInfo(param, options) {\n return this.api.deleteNamespacedIngressWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete an Ingress\n * @param param the request object\n */\n deleteNamespacedIngress(param, options) {\n return this.api.deleteNamespacedIngress(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a NetworkPolicy\n * @param param the request object\n */\n deleteNamespacedNetworkPolicyWithHttpInfo(param, options) {\n return this.api.deleteNamespacedNetworkPolicyWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a NetworkPolicy\n * @param param the request object\n */\n deleteNamespacedNetworkPolicy(param, options) {\n return this.api.deleteNamespacedNetworkPolicy(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ServiceCIDR\n * @param param the request object\n */\n deleteServiceCIDRWithHttpInfo(param, options) {\n return this.api.deleteServiceCIDRWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ServiceCIDR\n * @param param the request object\n */\n deleteServiceCIDR(param, options) {\n return this.api.deleteServiceCIDR(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind IPAddress\n * @param param the request object\n */\n listIPAddressWithHttpInfo(param = {}, options) {\n return this.api.listIPAddressWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind IPAddress\n * @param param the request object\n */\n listIPAddress(param = {}, options) {\n return this.api.listIPAddress(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind IngressClass\n * @param param the request object\n */\n listIngressClassWithHttpInfo(param = {}, options) {\n return this.api.listIngressClassWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind IngressClass\n * @param param the request object\n */\n listIngressClass(param = {}, options) {\n return this.api.listIngressClass(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Ingress\n * @param param the request object\n */\n listIngressForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listIngressForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Ingress\n * @param param the request object\n */\n listIngressForAllNamespaces(param = {}, options) {\n return this.api.listIngressForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Ingress\n * @param param the request object\n */\n listNamespacedIngressWithHttpInfo(param, options) {\n return this.api.listNamespacedIngressWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Ingress\n * @param param the request object\n */\n listNamespacedIngress(param, options) {\n return this.api.listNamespacedIngress(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind NetworkPolicy\n * @param param the request object\n */\n listNamespacedNetworkPolicyWithHttpInfo(param, options) {\n return this.api.listNamespacedNetworkPolicyWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind NetworkPolicy\n * @param param the request object\n */\n listNamespacedNetworkPolicy(param, options) {\n return this.api.listNamespacedNetworkPolicy(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind NetworkPolicy\n * @param param the request object\n */\n listNetworkPolicyForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listNetworkPolicyForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind NetworkPolicy\n * @param param the request object\n */\n listNetworkPolicyForAllNamespaces(param = {}, options) {\n return this.api.listNetworkPolicyForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ServiceCIDR\n * @param param the request object\n */\n listServiceCIDRWithHttpInfo(param = {}, options) {\n return this.api.listServiceCIDRWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ServiceCIDR\n * @param param the request object\n */\n listServiceCIDR(param = {}, options) {\n return this.api.listServiceCIDR(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified IPAddress\n * @param param the request object\n */\n patchIPAddressWithHttpInfo(param, options) {\n return this.api.patchIPAddressWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified IPAddress\n * @param param the request object\n */\n patchIPAddress(param, options) {\n return this.api.patchIPAddress(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified IngressClass\n * @param param the request object\n */\n patchIngressClassWithHttpInfo(param, options) {\n return this.api.patchIngressClassWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified IngressClass\n * @param param the request object\n */\n patchIngressClass(param, options) {\n return this.api.patchIngressClass(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Ingress\n * @param param the request object\n */\n patchNamespacedIngressWithHttpInfo(param, options) {\n return this.api.patchNamespacedIngressWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Ingress\n * @param param the request object\n */\n patchNamespacedIngress(param, options) {\n return this.api.patchNamespacedIngress(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified Ingress\n * @param param the request object\n */\n patchNamespacedIngressStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedIngressStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified Ingress\n * @param param the request object\n */\n patchNamespacedIngressStatus(param, options) {\n return this.api.patchNamespacedIngressStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified NetworkPolicy\n * @param param the request object\n */\n patchNamespacedNetworkPolicyWithHttpInfo(param, options) {\n return this.api.patchNamespacedNetworkPolicyWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified NetworkPolicy\n * @param param the request object\n */\n patchNamespacedNetworkPolicy(param, options) {\n return this.api.patchNamespacedNetworkPolicy(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ServiceCIDR\n * @param param the request object\n */\n patchServiceCIDRWithHttpInfo(param, options) {\n return this.api.patchServiceCIDRWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ServiceCIDR\n * @param param the request object\n */\n patchServiceCIDR(param, options) {\n return this.api.patchServiceCIDR(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ServiceCIDR\n * @param param the request object\n */\n patchServiceCIDRStatusWithHttpInfo(param, options) {\n return this.api.patchServiceCIDRStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ServiceCIDR\n * @param param the request object\n */\n patchServiceCIDRStatus(param, options) {\n return this.api.patchServiceCIDRStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified IPAddress\n * @param param the request object\n */\n readIPAddressWithHttpInfo(param, options) {\n return this.api.readIPAddressWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified IPAddress\n * @param param the request object\n */\n readIPAddress(param, options) {\n return this.api.readIPAddress(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified IngressClass\n * @param param the request object\n */\n readIngressClassWithHttpInfo(param, options) {\n return this.api.readIngressClassWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified IngressClass\n * @param param the request object\n */\n readIngressClass(param, options) {\n return this.api.readIngressClass(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified Ingress\n * @param param the request object\n */\n readNamespacedIngressWithHttpInfo(param, options) {\n return this.api.readNamespacedIngressWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Ingress\n * @param param the request object\n */\n readNamespacedIngress(param, options) {\n return this.api.readNamespacedIngress(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified Ingress\n * @param param the request object\n */\n readNamespacedIngressStatusWithHttpInfo(param, options) {\n return this.api.readNamespacedIngressStatusWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified Ingress\n * @param param the request object\n */\n readNamespacedIngressStatus(param, options) {\n return this.api.readNamespacedIngressStatus(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified NetworkPolicy\n * @param param the request object\n */\n readNamespacedNetworkPolicyWithHttpInfo(param, options) {\n return this.api.readNamespacedNetworkPolicyWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified NetworkPolicy\n * @param param the request object\n */\n readNamespacedNetworkPolicy(param, options) {\n return this.api.readNamespacedNetworkPolicy(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ServiceCIDR\n * @param param the request object\n */\n readServiceCIDRWithHttpInfo(param, options) {\n return this.api.readServiceCIDRWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ServiceCIDR\n * @param param the request object\n */\n readServiceCIDR(param, options) {\n return this.api.readServiceCIDR(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ServiceCIDR\n * @param param the request object\n */\n readServiceCIDRStatusWithHttpInfo(param, options) {\n return this.api.readServiceCIDRStatusWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ServiceCIDR\n * @param param the request object\n */\n readServiceCIDRStatus(param, options) {\n return this.api.readServiceCIDRStatus(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified IPAddress\n * @param param the request object\n */\n replaceIPAddressWithHttpInfo(param, options) {\n return this.api.replaceIPAddressWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified IPAddress\n * @param param the request object\n */\n replaceIPAddress(param, options) {\n return this.api.replaceIPAddress(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified IngressClass\n * @param param the request object\n */\n replaceIngressClassWithHttpInfo(param, options) {\n return this.api.replaceIngressClassWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified IngressClass\n * @param param the request object\n */\n replaceIngressClass(param, options) {\n return this.api.replaceIngressClass(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Ingress\n * @param param the request object\n */\n replaceNamespacedIngressWithHttpInfo(param, options) {\n return this.api.replaceNamespacedIngressWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Ingress\n * @param param the request object\n */\n replaceNamespacedIngress(param, options) {\n return this.api.replaceNamespacedIngress(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified Ingress\n * @param param the request object\n */\n replaceNamespacedIngressStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedIngressStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified Ingress\n * @param param the request object\n */\n replaceNamespacedIngressStatus(param, options) {\n return this.api.replaceNamespacedIngressStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified NetworkPolicy\n * @param param the request object\n */\n replaceNamespacedNetworkPolicyWithHttpInfo(param, options) {\n return this.api.replaceNamespacedNetworkPolicyWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified NetworkPolicy\n * @param param the request object\n */\n replaceNamespacedNetworkPolicy(param, options) {\n return this.api.replaceNamespacedNetworkPolicy(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ServiceCIDR\n * @param param the request object\n */\n replaceServiceCIDRWithHttpInfo(param, options) {\n return this.api.replaceServiceCIDRWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ServiceCIDR\n * @param param the request object\n */\n replaceServiceCIDR(param, options) {\n return this.api.replaceServiceCIDR(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ServiceCIDR\n * @param param the request object\n */\n replaceServiceCIDRStatusWithHttpInfo(param, options) {\n return this.api.replaceServiceCIDRStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ServiceCIDR\n * @param param the request object\n */\n replaceServiceCIDRStatus(param, options) {\n return this.api.replaceServiceCIDRStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableNetworkingV1beta1Api } from \"./ObservableAPI.js\";\nexport class ObjectNetworkingV1beta1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableNetworkingV1beta1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create an IPAddress\n * @param param the request object\n */\n createIPAddressWithHttpInfo(param, options) {\n return this.api.createIPAddressWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create an IPAddress\n * @param param the request object\n */\n createIPAddress(param, options) {\n return this.api.createIPAddress(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ServiceCIDR\n * @param param the request object\n */\n createServiceCIDRWithHttpInfo(param, options) {\n return this.api.createServiceCIDRWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ServiceCIDR\n * @param param the request object\n */\n createServiceCIDR(param, options) {\n return this.api.createServiceCIDR(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of IPAddress\n * @param param the request object\n */\n deleteCollectionIPAddressWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionIPAddressWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of IPAddress\n * @param param the request object\n */\n deleteCollectionIPAddress(param = {}, options) {\n return this.api.deleteCollectionIPAddress(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ServiceCIDR\n * @param param the request object\n */\n deleteCollectionServiceCIDRWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionServiceCIDRWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ServiceCIDR\n * @param param the request object\n */\n deleteCollectionServiceCIDR(param = {}, options) {\n return this.api.deleteCollectionServiceCIDR(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete an IPAddress\n * @param param the request object\n */\n deleteIPAddressWithHttpInfo(param, options) {\n return this.api.deleteIPAddressWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete an IPAddress\n * @param param the request object\n */\n deleteIPAddress(param, options) {\n return this.api.deleteIPAddress(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ServiceCIDR\n * @param param the request object\n */\n deleteServiceCIDRWithHttpInfo(param, options) {\n return this.api.deleteServiceCIDRWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ServiceCIDR\n * @param param the request object\n */\n deleteServiceCIDR(param, options) {\n return this.api.deleteServiceCIDR(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind IPAddress\n * @param param the request object\n */\n listIPAddressWithHttpInfo(param = {}, options) {\n return this.api.listIPAddressWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind IPAddress\n * @param param the request object\n */\n listIPAddress(param = {}, options) {\n return this.api.listIPAddress(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ServiceCIDR\n * @param param the request object\n */\n listServiceCIDRWithHttpInfo(param = {}, options) {\n return this.api.listServiceCIDRWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ServiceCIDR\n * @param param the request object\n */\n listServiceCIDR(param = {}, options) {\n return this.api.listServiceCIDR(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified IPAddress\n * @param param the request object\n */\n patchIPAddressWithHttpInfo(param, options) {\n return this.api.patchIPAddressWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified IPAddress\n * @param param the request object\n */\n patchIPAddress(param, options) {\n return this.api.patchIPAddress(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ServiceCIDR\n * @param param the request object\n */\n patchServiceCIDRWithHttpInfo(param, options) {\n return this.api.patchServiceCIDRWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ServiceCIDR\n * @param param the request object\n */\n patchServiceCIDR(param, options) {\n return this.api.patchServiceCIDR(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ServiceCIDR\n * @param param the request object\n */\n patchServiceCIDRStatusWithHttpInfo(param, options) {\n return this.api.patchServiceCIDRStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ServiceCIDR\n * @param param the request object\n */\n patchServiceCIDRStatus(param, options) {\n return this.api.patchServiceCIDRStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified IPAddress\n * @param param the request object\n */\n readIPAddressWithHttpInfo(param, options) {\n return this.api.readIPAddressWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified IPAddress\n * @param param the request object\n */\n readIPAddress(param, options) {\n return this.api.readIPAddress(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ServiceCIDR\n * @param param the request object\n */\n readServiceCIDRWithHttpInfo(param, options) {\n return this.api.readServiceCIDRWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ServiceCIDR\n * @param param the request object\n */\n readServiceCIDR(param, options) {\n return this.api.readServiceCIDR(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ServiceCIDR\n * @param param the request object\n */\n readServiceCIDRStatusWithHttpInfo(param, options) {\n return this.api.readServiceCIDRStatusWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ServiceCIDR\n * @param param the request object\n */\n readServiceCIDRStatus(param, options) {\n return this.api.readServiceCIDRStatus(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified IPAddress\n * @param param the request object\n */\n replaceIPAddressWithHttpInfo(param, options) {\n return this.api.replaceIPAddressWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified IPAddress\n * @param param the request object\n */\n replaceIPAddress(param, options) {\n return this.api.replaceIPAddress(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ServiceCIDR\n * @param param the request object\n */\n replaceServiceCIDRWithHttpInfo(param, options) {\n return this.api.replaceServiceCIDRWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ServiceCIDR\n * @param param the request object\n */\n replaceServiceCIDR(param, options) {\n return this.api.replaceServiceCIDR(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ServiceCIDR\n * @param param the request object\n */\n replaceServiceCIDRStatusWithHttpInfo(param, options) {\n return this.api.replaceServiceCIDRStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ServiceCIDR\n * @param param the request object\n */\n replaceServiceCIDRStatus(param, options) {\n return this.api.replaceServiceCIDRStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableNodeApi } from \"./ObservableAPI.js\";\nexport class ObjectNodeApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableNodeApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableNodeV1Api } from \"./ObservableAPI.js\";\nexport class ObjectNodeV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableNodeV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a RuntimeClass\n * @param param the request object\n */\n createRuntimeClassWithHttpInfo(param, options) {\n return this.api.createRuntimeClassWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a RuntimeClass\n * @param param the request object\n */\n createRuntimeClass(param, options) {\n return this.api.createRuntimeClass(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of RuntimeClass\n * @param param the request object\n */\n deleteCollectionRuntimeClassWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionRuntimeClassWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of RuntimeClass\n * @param param the request object\n */\n deleteCollectionRuntimeClass(param = {}, options) {\n return this.api.deleteCollectionRuntimeClass(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a RuntimeClass\n * @param param the request object\n */\n deleteRuntimeClassWithHttpInfo(param, options) {\n return this.api.deleteRuntimeClassWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a RuntimeClass\n * @param param the request object\n */\n deleteRuntimeClass(param, options) {\n return this.api.deleteRuntimeClass(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind RuntimeClass\n * @param param the request object\n */\n listRuntimeClassWithHttpInfo(param = {}, options) {\n return this.api.listRuntimeClassWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind RuntimeClass\n * @param param the request object\n */\n listRuntimeClass(param = {}, options) {\n return this.api.listRuntimeClass(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified RuntimeClass\n * @param param the request object\n */\n patchRuntimeClassWithHttpInfo(param, options) {\n return this.api.patchRuntimeClassWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified RuntimeClass\n * @param param the request object\n */\n patchRuntimeClass(param, options) {\n return this.api.patchRuntimeClass(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified RuntimeClass\n * @param param the request object\n */\n readRuntimeClassWithHttpInfo(param, options) {\n return this.api.readRuntimeClassWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified RuntimeClass\n * @param param the request object\n */\n readRuntimeClass(param, options) {\n return this.api.readRuntimeClass(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified RuntimeClass\n * @param param the request object\n */\n replaceRuntimeClassWithHttpInfo(param, options) {\n return this.api.replaceRuntimeClassWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified RuntimeClass\n * @param param the request object\n */\n replaceRuntimeClass(param, options) {\n return this.api.replaceRuntimeClass(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableOpenidApi } from \"./ObservableAPI.js\";\nexport class ObjectOpenidApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableOpenidApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get service account issuer OpenID JSON Web Key Set (contains public token verification keys)\n * @param param the request object\n */\n getServiceAccountIssuerOpenIDKeysetWithHttpInfo(param = {}, options) {\n return this.api.getServiceAccountIssuerOpenIDKeysetWithHttpInfo(options).toPromise();\n }\n /**\n * get service account issuer OpenID JSON Web Key Set (contains public token verification keys)\n * @param param the request object\n */\n getServiceAccountIssuerOpenIDKeyset(param = {}, options) {\n return this.api.getServiceAccountIssuerOpenIDKeyset(options).toPromise();\n }\n}\nimport { ObservablePolicyApi } from \"./ObservableAPI.js\";\nexport class ObjectPolicyApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservablePolicyApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservablePolicyV1Api } from \"./ObservableAPI.js\";\nexport class ObjectPolicyV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservablePolicyV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a PodDisruptionBudget\n * @param param the request object\n */\n createNamespacedPodDisruptionBudgetWithHttpInfo(param, options) {\n return this.api.createNamespacedPodDisruptionBudgetWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a PodDisruptionBudget\n * @param param the request object\n */\n createNamespacedPodDisruptionBudget(param, options) {\n return this.api.createNamespacedPodDisruptionBudget(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of PodDisruptionBudget\n * @param param the request object\n */\n deleteCollectionNamespacedPodDisruptionBudgetWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedPodDisruptionBudgetWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of PodDisruptionBudget\n * @param param the request object\n */\n deleteCollectionNamespacedPodDisruptionBudget(param, options) {\n return this.api.deleteCollectionNamespacedPodDisruptionBudget(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a PodDisruptionBudget\n * @param param the request object\n */\n deleteNamespacedPodDisruptionBudgetWithHttpInfo(param, options) {\n return this.api.deleteNamespacedPodDisruptionBudgetWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a PodDisruptionBudget\n * @param param the request object\n */\n deleteNamespacedPodDisruptionBudget(param, options) {\n return this.api.deleteNamespacedPodDisruptionBudget(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind PodDisruptionBudget\n * @param param the request object\n */\n listNamespacedPodDisruptionBudgetWithHttpInfo(param, options) {\n return this.api.listNamespacedPodDisruptionBudgetWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind PodDisruptionBudget\n * @param param the request object\n */\n listNamespacedPodDisruptionBudget(param, options) {\n return this.api.listNamespacedPodDisruptionBudget(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind PodDisruptionBudget\n * @param param the request object\n */\n listPodDisruptionBudgetForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listPodDisruptionBudgetForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind PodDisruptionBudget\n * @param param the request object\n */\n listPodDisruptionBudgetForAllNamespaces(param = {}, options) {\n return this.api.listPodDisruptionBudgetForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified PodDisruptionBudget\n * @param param the request object\n */\n patchNamespacedPodDisruptionBudgetWithHttpInfo(param, options) {\n return this.api.patchNamespacedPodDisruptionBudgetWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified PodDisruptionBudget\n * @param param the request object\n */\n patchNamespacedPodDisruptionBudget(param, options) {\n return this.api.patchNamespacedPodDisruptionBudget(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified PodDisruptionBudget\n * @param param the request object\n */\n patchNamespacedPodDisruptionBudgetStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedPodDisruptionBudgetStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified PodDisruptionBudget\n * @param param the request object\n */\n patchNamespacedPodDisruptionBudgetStatus(param, options) {\n return this.api.patchNamespacedPodDisruptionBudgetStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified PodDisruptionBudget\n * @param param the request object\n */\n readNamespacedPodDisruptionBudgetWithHttpInfo(param, options) {\n return this.api.readNamespacedPodDisruptionBudgetWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified PodDisruptionBudget\n * @param param the request object\n */\n readNamespacedPodDisruptionBudget(param, options) {\n return this.api.readNamespacedPodDisruptionBudget(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified PodDisruptionBudget\n * @param param the request object\n */\n readNamespacedPodDisruptionBudgetStatusWithHttpInfo(param, options) {\n return this.api.readNamespacedPodDisruptionBudgetStatusWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified PodDisruptionBudget\n * @param param the request object\n */\n readNamespacedPodDisruptionBudgetStatus(param, options) {\n return this.api.readNamespacedPodDisruptionBudgetStatus(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * replace the specified PodDisruptionBudget\n * @param param the request object\n */\n replaceNamespacedPodDisruptionBudgetWithHttpInfo(param, options) {\n return this.api.replaceNamespacedPodDisruptionBudgetWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified PodDisruptionBudget\n * @param param the request object\n */\n replaceNamespacedPodDisruptionBudget(param, options) {\n return this.api.replaceNamespacedPodDisruptionBudget(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified PodDisruptionBudget\n * @param param the request object\n */\n replaceNamespacedPodDisruptionBudgetStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedPodDisruptionBudgetStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified PodDisruptionBudget\n * @param param the request object\n */\n replaceNamespacedPodDisruptionBudgetStatus(param, options) {\n return this.api.replaceNamespacedPodDisruptionBudgetStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableRbacAuthorizationApi } from \"./ObservableAPI.js\";\nexport class ObjectRbacAuthorizationApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableRbacAuthorizationApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableRbacAuthorizationV1Api } from \"./ObservableAPI.js\";\nexport class ObjectRbacAuthorizationV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableRbacAuthorizationV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a ClusterRole\n * @param param the request object\n */\n createClusterRoleWithHttpInfo(param, options) {\n return this.api.createClusterRoleWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ClusterRole\n * @param param the request object\n */\n createClusterRole(param, options) {\n return this.api.createClusterRole(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ClusterRoleBinding\n * @param param the request object\n */\n createClusterRoleBindingWithHttpInfo(param, options) {\n return this.api.createClusterRoleBindingWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ClusterRoleBinding\n * @param param the request object\n */\n createClusterRoleBinding(param, options) {\n return this.api.createClusterRoleBinding(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a Role\n * @param param the request object\n */\n createNamespacedRoleWithHttpInfo(param, options) {\n return this.api.createNamespacedRoleWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a Role\n * @param param the request object\n */\n createNamespacedRole(param, options) {\n return this.api.createNamespacedRole(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a RoleBinding\n * @param param the request object\n */\n createNamespacedRoleBindingWithHttpInfo(param, options) {\n return this.api.createNamespacedRoleBindingWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a RoleBinding\n * @param param the request object\n */\n createNamespacedRoleBinding(param, options) {\n return this.api.createNamespacedRoleBinding(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete a ClusterRole\n * @param param the request object\n */\n deleteClusterRoleWithHttpInfo(param, options) {\n return this.api.deleteClusterRoleWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ClusterRole\n * @param param the request object\n */\n deleteClusterRole(param, options) {\n return this.api.deleteClusterRole(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ClusterRoleBinding\n * @param param the request object\n */\n deleteClusterRoleBindingWithHttpInfo(param, options) {\n return this.api.deleteClusterRoleBindingWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ClusterRoleBinding\n * @param param the request object\n */\n deleteClusterRoleBinding(param, options) {\n return this.api.deleteClusterRoleBinding(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete collection of ClusterRole\n * @param param the request object\n */\n deleteCollectionClusterRoleWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionClusterRoleWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ClusterRole\n * @param param the request object\n */\n deleteCollectionClusterRole(param = {}, options) {\n return this.api.deleteCollectionClusterRole(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ClusterRoleBinding\n * @param param the request object\n */\n deleteCollectionClusterRoleBindingWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionClusterRoleBindingWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ClusterRoleBinding\n * @param param the request object\n */\n deleteCollectionClusterRoleBinding(param = {}, options) {\n return this.api.deleteCollectionClusterRoleBinding(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Role\n * @param param the request object\n */\n deleteCollectionNamespacedRoleWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedRoleWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of Role\n * @param param the request object\n */\n deleteCollectionNamespacedRole(param, options) {\n return this.api.deleteCollectionNamespacedRole(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of RoleBinding\n * @param param the request object\n */\n deleteCollectionNamespacedRoleBindingWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedRoleBindingWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of RoleBinding\n * @param param the request object\n */\n deleteCollectionNamespacedRoleBinding(param, options) {\n return this.api.deleteCollectionNamespacedRoleBinding(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a Role\n * @param param the request object\n */\n deleteNamespacedRoleWithHttpInfo(param, options) {\n return this.api.deleteNamespacedRoleWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a Role\n * @param param the request object\n */\n deleteNamespacedRole(param, options) {\n return this.api.deleteNamespacedRole(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a RoleBinding\n * @param param the request object\n */\n deleteNamespacedRoleBindingWithHttpInfo(param, options) {\n return this.api.deleteNamespacedRoleBindingWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a RoleBinding\n * @param param the request object\n */\n deleteNamespacedRoleBinding(param, options) {\n return this.api.deleteNamespacedRoleBinding(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind ClusterRole\n * @param param the request object\n */\n listClusterRoleWithHttpInfo(param = {}, options) {\n return this.api.listClusterRoleWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ClusterRole\n * @param param the request object\n */\n listClusterRole(param = {}, options) {\n return this.api.listClusterRole(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ClusterRoleBinding\n * @param param the request object\n */\n listClusterRoleBindingWithHttpInfo(param = {}, options) {\n return this.api.listClusterRoleBindingWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ClusterRoleBinding\n * @param param the request object\n */\n listClusterRoleBinding(param = {}, options) {\n return this.api.listClusterRoleBinding(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Role\n * @param param the request object\n */\n listNamespacedRoleWithHttpInfo(param, options) {\n return this.api.listNamespacedRoleWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Role\n * @param param the request object\n */\n listNamespacedRole(param, options) {\n return this.api.listNamespacedRole(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind RoleBinding\n * @param param the request object\n */\n listNamespacedRoleBindingWithHttpInfo(param, options) {\n return this.api.listNamespacedRoleBindingWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind RoleBinding\n * @param param the request object\n */\n listNamespacedRoleBinding(param, options) {\n return this.api.listNamespacedRoleBinding(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind RoleBinding\n * @param param the request object\n */\n listRoleBindingForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listRoleBindingForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind RoleBinding\n * @param param the request object\n */\n listRoleBindingForAllNamespaces(param = {}, options) {\n return this.api.listRoleBindingForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Role\n * @param param the request object\n */\n listRoleForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listRoleForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind Role\n * @param param the request object\n */\n listRoleForAllNamespaces(param = {}, options) {\n return this.api.listRoleForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified ClusterRole\n * @param param the request object\n */\n patchClusterRoleWithHttpInfo(param, options) {\n return this.api.patchClusterRoleWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ClusterRole\n * @param param the request object\n */\n patchClusterRole(param, options) {\n return this.api.patchClusterRole(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ClusterRoleBinding\n * @param param the request object\n */\n patchClusterRoleBindingWithHttpInfo(param, options) {\n return this.api.patchClusterRoleBindingWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ClusterRoleBinding\n * @param param the request object\n */\n patchClusterRoleBinding(param, options) {\n return this.api.patchClusterRoleBinding(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Role\n * @param param the request object\n */\n patchNamespacedRoleWithHttpInfo(param, options) {\n return this.api.patchNamespacedRoleWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified Role\n * @param param the request object\n */\n patchNamespacedRole(param, options) {\n return this.api.patchNamespacedRole(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified RoleBinding\n * @param param the request object\n */\n patchNamespacedRoleBindingWithHttpInfo(param, options) {\n return this.api.patchNamespacedRoleBindingWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified RoleBinding\n * @param param the request object\n */\n patchNamespacedRoleBinding(param, options) {\n return this.api.patchNamespacedRoleBinding(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified ClusterRole\n * @param param the request object\n */\n readClusterRoleWithHttpInfo(param, options) {\n return this.api.readClusterRoleWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ClusterRole\n * @param param the request object\n */\n readClusterRole(param, options) {\n return this.api.readClusterRole(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ClusterRoleBinding\n * @param param the request object\n */\n readClusterRoleBindingWithHttpInfo(param, options) {\n return this.api.readClusterRoleBindingWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ClusterRoleBinding\n * @param param the request object\n */\n readClusterRoleBinding(param, options) {\n return this.api.readClusterRoleBinding(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified Role\n * @param param the request object\n */\n readNamespacedRoleWithHttpInfo(param, options) {\n return this.api.readNamespacedRoleWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified Role\n * @param param the request object\n */\n readNamespacedRole(param, options) {\n return this.api.readNamespacedRole(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified RoleBinding\n * @param param the request object\n */\n readNamespacedRoleBindingWithHttpInfo(param, options) {\n return this.api.readNamespacedRoleBindingWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified RoleBinding\n * @param param the request object\n */\n readNamespacedRoleBinding(param, options) {\n return this.api.readNamespacedRoleBinding(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * replace the specified ClusterRole\n * @param param the request object\n */\n replaceClusterRoleWithHttpInfo(param, options) {\n return this.api.replaceClusterRoleWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ClusterRole\n * @param param the request object\n */\n replaceClusterRole(param, options) {\n return this.api.replaceClusterRole(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ClusterRoleBinding\n * @param param the request object\n */\n replaceClusterRoleBindingWithHttpInfo(param, options) {\n return this.api.replaceClusterRoleBindingWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ClusterRoleBinding\n * @param param the request object\n */\n replaceClusterRoleBinding(param, options) {\n return this.api.replaceClusterRoleBinding(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Role\n * @param param the request object\n */\n replaceNamespacedRoleWithHttpInfo(param, options) {\n return this.api.replaceNamespacedRoleWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified Role\n * @param param the request object\n */\n replaceNamespacedRole(param, options) {\n return this.api.replaceNamespacedRole(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified RoleBinding\n * @param param the request object\n */\n replaceNamespacedRoleBindingWithHttpInfo(param, options) {\n return this.api.replaceNamespacedRoleBindingWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified RoleBinding\n * @param param the request object\n */\n replaceNamespacedRoleBinding(param, options) {\n return this.api.replaceNamespacedRoleBinding(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableResourceApi } from \"./ObservableAPI.js\";\nexport class ObjectResourceApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableResourceApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableResourceV1alpha3Api } from \"./ObservableAPI.js\";\nexport class ObjectResourceV1alpha3Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableResourceV1alpha3Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a DeviceClass\n * @param param the request object\n */\n createDeviceClassWithHttpInfo(param, options) {\n return this.api.createDeviceClassWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a DeviceClass\n * @param param the request object\n */\n createDeviceClass(param, options) {\n return this.api.createDeviceClass(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a DeviceTaintRule\n * @param param the request object\n */\n createDeviceTaintRuleWithHttpInfo(param, options) {\n return this.api.createDeviceTaintRuleWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a DeviceTaintRule\n * @param param the request object\n */\n createDeviceTaintRule(param, options) {\n return this.api.createDeviceTaintRule(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceClaim\n * @param param the request object\n */\n createNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.createNamespacedResourceClaimWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceClaim\n * @param param the request object\n */\n createNamespacedResourceClaim(param, options) {\n return this.api.createNamespacedResourceClaim(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceClaimTemplate\n * @param param the request object\n */\n createNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.createNamespacedResourceClaimTemplateWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceClaimTemplate\n * @param param the request object\n */\n createNamespacedResourceClaimTemplate(param, options) {\n return this.api.createNamespacedResourceClaimTemplate(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceSlice\n * @param param the request object\n */\n createResourceSliceWithHttpInfo(param, options) {\n return this.api.createResourceSliceWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceSlice\n * @param param the request object\n */\n createResourceSlice(param, options) {\n return this.api.createResourceSlice(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of DeviceClass\n * @param param the request object\n */\n deleteCollectionDeviceClassWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionDeviceClassWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of DeviceClass\n * @param param the request object\n */\n deleteCollectionDeviceClass(param = {}, options) {\n return this.api.deleteCollectionDeviceClass(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of DeviceTaintRule\n * @param param the request object\n */\n deleteCollectionDeviceTaintRuleWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionDeviceTaintRuleWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of DeviceTaintRule\n * @param param the request object\n */\n deleteCollectionDeviceTaintRule(param = {}, options) {\n return this.api.deleteCollectionDeviceTaintRule(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceClaim\n * @param param the request object\n */\n deleteCollectionNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedResourceClaimWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceClaim\n * @param param the request object\n */\n deleteCollectionNamespacedResourceClaim(param, options) {\n return this.api.deleteCollectionNamespacedResourceClaim(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceClaimTemplate\n * @param param the request object\n */\n deleteCollectionNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedResourceClaimTemplateWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceClaimTemplate\n * @param param the request object\n */\n deleteCollectionNamespacedResourceClaimTemplate(param, options) {\n return this.api.deleteCollectionNamespacedResourceClaimTemplate(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceSlice\n * @param param the request object\n */\n deleteCollectionResourceSliceWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionResourceSliceWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceSlice\n * @param param the request object\n */\n deleteCollectionResourceSlice(param = {}, options) {\n return this.api.deleteCollectionResourceSlice(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a DeviceClass\n * @param param the request object\n */\n deleteDeviceClassWithHttpInfo(param, options) {\n return this.api.deleteDeviceClassWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a DeviceClass\n * @param param the request object\n */\n deleteDeviceClass(param, options) {\n return this.api.deleteDeviceClass(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a DeviceTaintRule\n * @param param the request object\n */\n deleteDeviceTaintRuleWithHttpInfo(param, options) {\n return this.api.deleteDeviceTaintRuleWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a DeviceTaintRule\n * @param param the request object\n */\n deleteDeviceTaintRule(param, options) {\n return this.api.deleteDeviceTaintRule(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceClaim\n * @param param the request object\n */\n deleteNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.deleteNamespacedResourceClaimWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceClaim\n * @param param the request object\n */\n deleteNamespacedResourceClaim(param, options) {\n return this.api.deleteNamespacedResourceClaim(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceClaimTemplate\n * @param param the request object\n */\n deleteNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.deleteNamespacedResourceClaimTemplateWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceClaimTemplate\n * @param param the request object\n */\n deleteNamespacedResourceClaimTemplate(param, options) {\n return this.api.deleteNamespacedResourceClaimTemplate(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceSlice\n * @param param the request object\n */\n deleteResourceSliceWithHttpInfo(param, options) {\n return this.api.deleteResourceSliceWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceSlice\n * @param param the request object\n */\n deleteResourceSlice(param, options) {\n return this.api.deleteResourceSlice(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind DeviceClass\n * @param param the request object\n */\n listDeviceClassWithHttpInfo(param = {}, options) {\n return this.api.listDeviceClassWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind DeviceClass\n * @param param the request object\n */\n listDeviceClass(param = {}, options) {\n return this.api.listDeviceClass(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind DeviceTaintRule\n * @param param the request object\n */\n listDeviceTaintRuleWithHttpInfo(param = {}, options) {\n return this.api.listDeviceTaintRuleWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind DeviceTaintRule\n * @param param the request object\n */\n listDeviceTaintRule(param = {}, options) {\n return this.api.listDeviceTaintRule(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param param the request object\n */\n listNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.listNamespacedResourceClaimWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param param the request object\n */\n listNamespacedResourceClaim(param, options) {\n return this.api.listNamespacedResourceClaim(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param param the request object\n */\n listNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.listNamespacedResourceClaimTemplateWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param param the request object\n */\n listNamespacedResourceClaimTemplate(param, options) {\n return this.api.listNamespacedResourceClaimTemplate(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param param the request object\n */\n listResourceClaimForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listResourceClaimForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param param the request object\n */\n listResourceClaimForAllNamespaces(param = {}, options) {\n return this.api.listResourceClaimForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param param the request object\n */\n listResourceClaimTemplateForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listResourceClaimTemplateForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param param the request object\n */\n listResourceClaimTemplateForAllNamespaces(param = {}, options) {\n return this.api.listResourceClaimTemplateForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceSlice\n * @param param the request object\n */\n listResourceSliceWithHttpInfo(param = {}, options) {\n return this.api.listResourceSliceWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceSlice\n * @param param the request object\n */\n listResourceSlice(param = {}, options) {\n return this.api.listResourceSlice(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified DeviceClass\n * @param param the request object\n */\n patchDeviceClassWithHttpInfo(param, options) {\n return this.api.patchDeviceClassWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified DeviceClass\n * @param param the request object\n */\n patchDeviceClass(param, options) {\n return this.api.patchDeviceClass(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified DeviceTaintRule\n * @param param the request object\n */\n patchDeviceTaintRuleWithHttpInfo(param, options) {\n return this.api.patchDeviceTaintRuleWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified DeviceTaintRule\n * @param param the request object\n */\n patchDeviceTaintRule(param, options) {\n return this.api.patchDeviceTaintRule(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceClaim\n * @param param the request object\n */\n patchNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.patchNamespacedResourceClaimWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceClaim\n * @param param the request object\n */\n patchNamespacedResourceClaim(param, options) {\n return this.api.patchNamespacedResourceClaim(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ResourceClaim\n * @param param the request object\n */\n patchNamespacedResourceClaimStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedResourceClaimStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ResourceClaim\n * @param param the request object\n */\n patchNamespacedResourceClaimStatus(param, options) {\n return this.api.patchNamespacedResourceClaimStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceClaimTemplate\n * @param param the request object\n */\n patchNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.patchNamespacedResourceClaimTemplateWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceClaimTemplate\n * @param param the request object\n */\n patchNamespacedResourceClaimTemplate(param, options) {\n return this.api.patchNamespacedResourceClaimTemplate(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceSlice\n * @param param the request object\n */\n patchResourceSliceWithHttpInfo(param, options) {\n return this.api.patchResourceSliceWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceSlice\n * @param param the request object\n */\n patchResourceSlice(param, options) {\n return this.api.patchResourceSlice(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified DeviceClass\n * @param param the request object\n */\n readDeviceClassWithHttpInfo(param, options) {\n return this.api.readDeviceClassWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified DeviceClass\n * @param param the request object\n */\n readDeviceClass(param, options) {\n return this.api.readDeviceClass(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified DeviceTaintRule\n * @param param the request object\n */\n readDeviceTaintRuleWithHttpInfo(param, options) {\n return this.api.readDeviceTaintRuleWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified DeviceTaintRule\n * @param param the request object\n */\n readDeviceTaintRule(param, options) {\n return this.api.readDeviceTaintRule(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceClaim\n * @param param the request object\n */\n readNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.readNamespacedResourceClaimWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceClaim\n * @param param the request object\n */\n readNamespacedResourceClaim(param, options) {\n return this.api.readNamespacedResourceClaim(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ResourceClaim\n * @param param the request object\n */\n readNamespacedResourceClaimStatusWithHttpInfo(param, options) {\n return this.api.readNamespacedResourceClaimStatusWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ResourceClaim\n * @param param the request object\n */\n readNamespacedResourceClaimStatus(param, options) {\n return this.api.readNamespacedResourceClaimStatus(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceClaimTemplate\n * @param param the request object\n */\n readNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.readNamespacedResourceClaimTemplateWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceClaimTemplate\n * @param param the request object\n */\n readNamespacedResourceClaimTemplate(param, options) {\n return this.api.readNamespacedResourceClaimTemplate(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceSlice\n * @param param the request object\n */\n readResourceSliceWithHttpInfo(param, options) {\n return this.api.readResourceSliceWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceSlice\n * @param param the request object\n */\n readResourceSlice(param, options) {\n return this.api.readResourceSlice(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified DeviceClass\n * @param param the request object\n */\n replaceDeviceClassWithHttpInfo(param, options) {\n return this.api.replaceDeviceClassWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified DeviceClass\n * @param param the request object\n */\n replaceDeviceClass(param, options) {\n return this.api.replaceDeviceClass(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified DeviceTaintRule\n * @param param the request object\n */\n replaceDeviceTaintRuleWithHttpInfo(param, options) {\n return this.api.replaceDeviceTaintRuleWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified DeviceTaintRule\n * @param param the request object\n */\n replaceDeviceTaintRule(param, options) {\n return this.api.replaceDeviceTaintRule(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceClaim\n * @param param the request object\n */\n replaceNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.replaceNamespacedResourceClaimWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceClaim\n * @param param the request object\n */\n replaceNamespacedResourceClaim(param, options) {\n return this.api.replaceNamespacedResourceClaim(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ResourceClaim\n * @param param the request object\n */\n replaceNamespacedResourceClaimStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedResourceClaimStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ResourceClaim\n * @param param the request object\n */\n replaceNamespacedResourceClaimStatus(param, options) {\n return this.api.replaceNamespacedResourceClaimStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceClaimTemplate\n * @param param the request object\n */\n replaceNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.replaceNamespacedResourceClaimTemplateWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceClaimTemplate\n * @param param the request object\n */\n replaceNamespacedResourceClaimTemplate(param, options) {\n return this.api.replaceNamespacedResourceClaimTemplate(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceSlice\n * @param param the request object\n */\n replaceResourceSliceWithHttpInfo(param, options) {\n return this.api.replaceResourceSliceWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceSlice\n * @param param the request object\n */\n replaceResourceSlice(param, options) {\n return this.api.replaceResourceSlice(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableResourceV1beta1Api } from \"./ObservableAPI.js\";\nexport class ObjectResourceV1beta1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableResourceV1beta1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a DeviceClass\n * @param param the request object\n */\n createDeviceClassWithHttpInfo(param, options) {\n return this.api.createDeviceClassWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a DeviceClass\n * @param param the request object\n */\n createDeviceClass(param, options) {\n return this.api.createDeviceClass(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceClaim\n * @param param the request object\n */\n createNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.createNamespacedResourceClaimWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceClaim\n * @param param the request object\n */\n createNamespacedResourceClaim(param, options) {\n return this.api.createNamespacedResourceClaim(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceClaimTemplate\n * @param param the request object\n */\n createNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.createNamespacedResourceClaimTemplateWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceClaimTemplate\n * @param param the request object\n */\n createNamespacedResourceClaimTemplate(param, options) {\n return this.api.createNamespacedResourceClaimTemplate(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceSlice\n * @param param the request object\n */\n createResourceSliceWithHttpInfo(param, options) {\n return this.api.createResourceSliceWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceSlice\n * @param param the request object\n */\n createResourceSlice(param, options) {\n return this.api.createResourceSlice(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of DeviceClass\n * @param param the request object\n */\n deleteCollectionDeviceClassWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionDeviceClassWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of DeviceClass\n * @param param the request object\n */\n deleteCollectionDeviceClass(param = {}, options) {\n return this.api.deleteCollectionDeviceClass(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceClaim\n * @param param the request object\n */\n deleteCollectionNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedResourceClaimWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceClaim\n * @param param the request object\n */\n deleteCollectionNamespacedResourceClaim(param, options) {\n return this.api.deleteCollectionNamespacedResourceClaim(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceClaimTemplate\n * @param param the request object\n */\n deleteCollectionNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedResourceClaimTemplateWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceClaimTemplate\n * @param param the request object\n */\n deleteCollectionNamespacedResourceClaimTemplate(param, options) {\n return this.api.deleteCollectionNamespacedResourceClaimTemplate(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceSlice\n * @param param the request object\n */\n deleteCollectionResourceSliceWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionResourceSliceWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceSlice\n * @param param the request object\n */\n deleteCollectionResourceSlice(param = {}, options) {\n return this.api.deleteCollectionResourceSlice(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a DeviceClass\n * @param param the request object\n */\n deleteDeviceClassWithHttpInfo(param, options) {\n return this.api.deleteDeviceClassWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a DeviceClass\n * @param param the request object\n */\n deleteDeviceClass(param, options) {\n return this.api.deleteDeviceClass(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceClaim\n * @param param the request object\n */\n deleteNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.deleteNamespacedResourceClaimWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceClaim\n * @param param the request object\n */\n deleteNamespacedResourceClaim(param, options) {\n return this.api.deleteNamespacedResourceClaim(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceClaimTemplate\n * @param param the request object\n */\n deleteNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.deleteNamespacedResourceClaimTemplateWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceClaimTemplate\n * @param param the request object\n */\n deleteNamespacedResourceClaimTemplate(param, options) {\n return this.api.deleteNamespacedResourceClaimTemplate(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceSlice\n * @param param the request object\n */\n deleteResourceSliceWithHttpInfo(param, options) {\n return this.api.deleteResourceSliceWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceSlice\n * @param param the request object\n */\n deleteResourceSlice(param, options) {\n return this.api.deleteResourceSlice(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind DeviceClass\n * @param param the request object\n */\n listDeviceClassWithHttpInfo(param = {}, options) {\n return this.api.listDeviceClassWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind DeviceClass\n * @param param the request object\n */\n listDeviceClass(param = {}, options) {\n return this.api.listDeviceClass(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param param the request object\n */\n listNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.listNamespacedResourceClaimWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param param the request object\n */\n listNamespacedResourceClaim(param, options) {\n return this.api.listNamespacedResourceClaim(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param param the request object\n */\n listNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.listNamespacedResourceClaimTemplateWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param param the request object\n */\n listNamespacedResourceClaimTemplate(param, options) {\n return this.api.listNamespacedResourceClaimTemplate(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param param the request object\n */\n listResourceClaimForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listResourceClaimForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param param the request object\n */\n listResourceClaimForAllNamespaces(param = {}, options) {\n return this.api.listResourceClaimForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param param the request object\n */\n listResourceClaimTemplateForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listResourceClaimTemplateForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param param the request object\n */\n listResourceClaimTemplateForAllNamespaces(param = {}, options) {\n return this.api.listResourceClaimTemplateForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceSlice\n * @param param the request object\n */\n listResourceSliceWithHttpInfo(param = {}, options) {\n return this.api.listResourceSliceWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceSlice\n * @param param the request object\n */\n listResourceSlice(param = {}, options) {\n return this.api.listResourceSlice(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified DeviceClass\n * @param param the request object\n */\n patchDeviceClassWithHttpInfo(param, options) {\n return this.api.patchDeviceClassWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified DeviceClass\n * @param param the request object\n */\n patchDeviceClass(param, options) {\n return this.api.patchDeviceClass(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceClaim\n * @param param the request object\n */\n patchNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.patchNamespacedResourceClaimWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceClaim\n * @param param the request object\n */\n patchNamespacedResourceClaim(param, options) {\n return this.api.patchNamespacedResourceClaim(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ResourceClaim\n * @param param the request object\n */\n patchNamespacedResourceClaimStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedResourceClaimStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ResourceClaim\n * @param param the request object\n */\n patchNamespacedResourceClaimStatus(param, options) {\n return this.api.patchNamespacedResourceClaimStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceClaimTemplate\n * @param param the request object\n */\n patchNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.patchNamespacedResourceClaimTemplateWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceClaimTemplate\n * @param param the request object\n */\n patchNamespacedResourceClaimTemplate(param, options) {\n return this.api.patchNamespacedResourceClaimTemplate(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceSlice\n * @param param the request object\n */\n patchResourceSliceWithHttpInfo(param, options) {\n return this.api.patchResourceSliceWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceSlice\n * @param param the request object\n */\n patchResourceSlice(param, options) {\n return this.api.patchResourceSlice(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified DeviceClass\n * @param param the request object\n */\n readDeviceClassWithHttpInfo(param, options) {\n return this.api.readDeviceClassWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified DeviceClass\n * @param param the request object\n */\n readDeviceClass(param, options) {\n return this.api.readDeviceClass(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceClaim\n * @param param the request object\n */\n readNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.readNamespacedResourceClaimWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceClaim\n * @param param the request object\n */\n readNamespacedResourceClaim(param, options) {\n return this.api.readNamespacedResourceClaim(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ResourceClaim\n * @param param the request object\n */\n readNamespacedResourceClaimStatusWithHttpInfo(param, options) {\n return this.api.readNamespacedResourceClaimStatusWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ResourceClaim\n * @param param the request object\n */\n readNamespacedResourceClaimStatus(param, options) {\n return this.api.readNamespacedResourceClaimStatus(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceClaimTemplate\n * @param param the request object\n */\n readNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.readNamespacedResourceClaimTemplateWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceClaimTemplate\n * @param param the request object\n */\n readNamespacedResourceClaimTemplate(param, options) {\n return this.api.readNamespacedResourceClaimTemplate(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceSlice\n * @param param the request object\n */\n readResourceSliceWithHttpInfo(param, options) {\n return this.api.readResourceSliceWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceSlice\n * @param param the request object\n */\n readResourceSlice(param, options) {\n return this.api.readResourceSlice(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified DeviceClass\n * @param param the request object\n */\n replaceDeviceClassWithHttpInfo(param, options) {\n return this.api.replaceDeviceClassWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified DeviceClass\n * @param param the request object\n */\n replaceDeviceClass(param, options) {\n return this.api.replaceDeviceClass(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceClaim\n * @param param the request object\n */\n replaceNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.replaceNamespacedResourceClaimWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceClaim\n * @param param the request object\n */\n replaceNamespacedResourceClaim(param, options) {\n return this.api.replaceNamespacedResourceClaim(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ResourceClaim\n * @param param the request object\n */\n replaceNamespacedResourceClaimStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedResourceClaimStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ResourceClaim\n * @param param the request object\n */\n replaceNamespacedResourceClaimStatus(param, options) {\n return this.api.replaceNamespacedResourceClaimStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceClaimTemplate\n * @param param the request object\n */\n replaceNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.replaceNamespacedResourceClaimTemplateWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceClaimTemplate\n * @param param the request object\n */\n replaceNamespacedResourceClaimTemplate(param, options) {\n return this.api.replaceNamespacedResourceClaimTemplate(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceSlice\n * @param param the request object\n */\n replaceResourceSliceWithHttpInfo(param, options) {\n return this.api.replaceResourceSliceWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceSlice\n * @param param the request object\n */\n replaceResourceSlice(param, options) {\n return this.api.replaceResourceSlice(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableResourceV1beta2Api } from \"./ObservableAPI.js\";\nexport class ObjectResourceV1beta2Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableResourceV1beta2Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a DeviceClass\n * @param param the request object\n */\n createDeviceClassWithHttpInfo(param, options) {\n return this.api.createDeviceClassWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a DeviceClass\n * @param param the request object\n */\n createDeviceClass(param, options) {\n return this.api.createDeviceClass(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceClaim\n * @param param the request object\n */\n createNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.createNamespacedResourceClaimWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceClaim\n * @param param the request object\n */\n createNamespacedResourceClaim(param, options) {\n return this.api.createNamespacedResourceClaim(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceClaimTemplate\n * @param param the request object\n */\n createNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.createNamespacedResourceClaimTemplateWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceClaimTemplate\n * @param param the request object\n */\n createNamespacedResourceClaimTemplate(param, options) {\n return this.api.createNamespacedResourceClaimTemplate(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceSlice\n * @param param the request object\n */\n createResourceSliceWithHttpInfo(param, options) {\n return this.api.createResourceSliceWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a ResourceSlice\n * @param param the request object\n */\n createResourceSlice(param, options) {\n return this.api.createResourceSlice(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of DeviceClass\n * @param param the request object\n */\n deleteCollectionDeviceClassWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionDeviceClassWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of DeviceClass\n * @param param the request object\n */\n deleteCollectionDeviceClass(param = {}, options) {\n return this.api.deleteCollectionDeviceClass(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceClaim\n * @param param the request object\n */\n deleteCollectionNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedResourceClaimWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceClaim\n * @param param the request object\n */\n deleteCollectionNamespacedResourceClaim(param, options) {\n return this.api.deleteCollectionNamespacedResourceClaim(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceClaimTemplate\n * @param param the request object\n */\n deleteCollectionNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedResourceClaimTemplateWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceClaimTemplate\n * @param param the request object\n */\n deleteCollectionNamespacedResourceClaimTemplate(param, options) {\n return this.api.deleteCollectionNamespacedResourceClaimTemplate(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceSlice\n * @param param the request object\n */\n deleteCollectionResourceSliceWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionResourceSliceWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of ResourceSlice\n * @param param the request object\n */\n deleteCollectionResourceSlice(param = {}, options) {\n return this.api.deleteCollectionResourceSlice(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a DeviceClass\n * @param param the request object\n */\n deleteDeviceClassWithHttpInfo(param, options) {\n return this.api.deleteDeviceClassWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a DeviceClass\n * @param param the request object\n */\n deleteDeviceClass(param, options) {\n return this.api.deleteDeviceClass(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceClaim\n * @param param the request object\n */\n deleteNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.deleteNamespacedResourceClaimWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceClaim\n * @param param the request object\n */\n deleteNamespacedResourceClaim(param, options) {\n return this.api.deleteNamespacedResourceClaim(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceClaimTemplate\n * @param param the request object\n */\n deleteNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.deleteNamespacedResourceClaimTemplateWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceClaimTemplate\n * @param param the request object\n */\n deleteNamespacedResourceClaimTemplate(param, options) {\n return this.api.deleteNamespacedResourceClaimTemplate(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceSlice\n * @param param the request object\n */\n deleteResourceSliceWithHttpInfo(param, options) {\n return this.api.deleteResourceSliceWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a ResourceSlice\n * @param param the request object\n */\n deleteResourceSlice(param, options) {\n return this.api.deleteResourceSlice(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind DeviceClass\n * @param param the request object\n */\n listDeviceClassWithHttpInfo(param = {}, options) {\n return this.api.listDeviceClassWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind DeviceClass\n * @param param the request object\n */\n listDeviceClass(param = {}, options) {\n return this.api.listDeviceClass(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param param the request object\n */\n listNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.listNamespacedResourceClaimWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param param the request object\n */\n listNamespacedResourceClaim(param, options) {\n return this.api.listNamespacedResourceClaim(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param param the request object\n */\n listNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.listNamespacedResourceClaimTemplateWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param param the request object\n */\n listNamespacedResourceClaimTemplate(param, options) {\n return this.api.listNamespacedResourceClaimTemplate(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param param the request object\n */\n listResourceClaimForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listResourceClaimForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaim\n * @param param the request object\n */\n listResourceClaimForAllNamespaces(param = {}, options) {\n return this.api.listResourceClaimForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param param the request object\n */\n listResourceClaimTemplateForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listResourceClaimTemplateForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceClaimTemplate\n * @param param the request object\n */\n listResourceClaimTemplateForAllNamespaces(param = {}, options) {\n return this.api.listResourceClaimTemplateForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceSlice\n * @param param the request object\n */\n listResourceSliceWithHttpInfo(param = {}, options) {\n return this.api.listResourceSliceWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind ResourceSlice\n * @param param the request object\n */\n listResourceSlice(param = {}, options) {\n return this.api.listResourceSlice(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified DeviceClass\n * @param param the request object\n */\n patchDeviceClassWithHttpInfo(param, options) {\n return this.api.patchDeviceClassWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified DeviceClass\n * @param param the request object\n */\n patchDeviceClass(param, options) {\n return this.api.patchDeviceClass(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceClaim\n * @param param the request object\n */\n patchNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.patchNamespacedResourceClaimWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceClaim\n * @param param the request object\n */\n patchNamespacedResourceClaim(param, options) {\n return this.api.patchNamespacedResourceClaim(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ResourceClaim\n * @param param the request object\n */\n patchNamespacedResourceClaimStatusWithHttpInfo(param, options) {\n return this.api.patchNamespacedResourceClaimStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified ResourceClaim\n * @param param the request object\n */\n patchNamespacedResourceClaimStatus(param, options) {\n return this.api.patchNamespacedResourceClaimStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceClaimTemplate\n * @param param the request object\n */\n patchNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.patchNamespacedResourceClaimTemplateWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceClaimTemplate\n * @param param the request object\n */\n patchNamespacedResourceClaimTemplate(param, options) {\n return this.api.patchNamespacedResourceClaimTemplate(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceSlice\n * @param param the request object\n */\n patchResourceSliceWithHttpInfo(param, options) {\n return this.api.patchResourceSliceWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified ResourceSlice\n * @param param the request object\n */\n patchResourceSlice(param, options) {\n return this.api.patchResourceSlice(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified DeviceClass\n * @param param the request object\n */\n readDeviceClassWithHttpInfo(param, options) {\n return this.api.readDeviceClassWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified DeviceClass\n * @param param the request object\n */\n readDeviceClass(param, options) {\n return this.api.readDeviceClass(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceClaim\n * @param param the request object\n */\n readNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.readNamespacedResourceClaimWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceClaim\n * @param param the request object\n */\n readNamespacedResourceClaim(param, options) {\n return this.api.readNamespacedResourceClaim(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ResourceClaim\n * @param param the request object\n */\n readNamespacedResourceClaimStatusWithHttpInfo(param, options) {\n return this.api.readNamespacedResourceClaimStatusWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified ResourceClaim\n * @param param the request object\n */\n readNamespacedResourceClaimStatus(param, options) {\n return this.api.readNamespacedResourceClaimStatus(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceClaimTemplate\n * @param param the request object\n */\n readNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.readNamespacedResourceClaimTemplateWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceClaimTemplate\n * @param param the request object\n */\n readNamespacedResourceClaimTemplate(param, options) {\n return this.api.readNamespacedResourceClaimTemplate(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceSlice\n * @param param the request object\n */\n readResourceSliceWithHttpInfo(param, options) {\n return this.api.readResourceSliceWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified ResourceSlice\n * @param param the request object\n */\n readResourceSlice(param, options) {\n return this.api.readResourceSlice(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified DeviceClass\n * @param param the request object\n */\n replaceDeviceClassWithHttpInfo(param, options) {\n return this.api.replaceDeviceClassWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified DeviceClass\n * @param param the request object\n */\n replaceDeviceClass(param, options) {\n return this.api.replaceDeviceClass(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceClaim\n * @param param the request object\n */\n replaceNamespacedResourceClaimWithHttpInfo(param, options) {\n return this.api.replaceNamespacedResourceClaimWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceClaim\n * @param param the request object\n */\n replaceNamespacedResourceClaim(param, options) {\n return this.api.replaceNamespacedResourceClaim(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ResourceClaim\n * @param param the request object\n */\n replaceNamespacedResourceClaimStatusWithHttpInfo(param, options) {\n return this.api.replaceNamespacedResourceClaimStatusWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified ResourceClaim\n * @param param the request object\n */\n replaceNamespacedResourceClaimStatus(param, options) {\n return this.api.replaceNamespacedResourceClaimStatus(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceClaimTemplate\n * @param param the request object\n */\n replaceNamespacedResourceClaimTemplateWithHttpInfo(param, options) {\n return this.api.replaceNamespacedResourceClaimTemplateWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceClaimTemplate\n * @param param the request object\n */\n replaceNamespacedResourceClaimTemplate(param, options) {\n return this.api.replaceNamespacedResourceClaimTemplate(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceSlice\n * @param param the request object\n */\n replaceResourceSliceWithHttpInfo(param, options) {\n return this.api.replaceResourceSliceWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified ResourceSlice\n * @param param the request object\n */\n replaceResourceSlice(param, options) {\n return this.api.replaceResourceSlice(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableSchedulingApi } from \"./ObservableAPI.js\";\nexport class ObjectSchedulingApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableSchedulingApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableSchedulingV1Api } from \"./ObservableAPI.js\";\nexport class ObjectSchedulingV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableSchedulingV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a PriorityClass\n * @param param the request object\n */\n createPriorityClassWithHttpInfo(param, options) {\n return this.api.createPriorityClassWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a PriorityClass\n * @param param the request object\n */\n createPriorityClass(param, options) {\n return this.api.createPriorityClass(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of PriorityClass\n * @param param the request object\n */\n deleteCollectionPriorityClassWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionPriorityClassWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of PriorityClass\n * @param param the request object\n */\n deleteCollectionPriorityClass(param = {}, options) {\n return this.api.deleteCollectionPriorityClass(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a PriorityClass\n * @param param the request object\n */\n deletePriorityClassWithHttpInfo(param, options) {\n return this.api.deletePriorityClassWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a PriorityClass\n * @param param the request object\n */\n deletePriorityClass(param, options) {\n return this.api.deletePriorityClass(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind PriorityClass\n * @param param the request object\n */\n listPriorityClassWithHttpInfo(param = {}, options) {\n return this.api.listPriorityClassWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind PriorityClass\n * @param param the request object\n */\n listPriorityClass(param = {}, options) {\n return this.api.listPriorityClass(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified PriorityClass\n * @param param the request object\n */\n patchPriorityClassWithHttpInfo(param, options) {\n return this.api.patchPriorityClassWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified PriorityClass\n * @param param the request object\n */\n patchPriorityClass(param, options) {\n return this.api.patchPriorityClass(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified PriorityClass\n * @param param the request object\n */\n readPriorityClassWithHttpInfo(param, options) {\n return this.api.readPriorityClassWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified PriorityClass\n * @param param the request object\n */\n readPriorityClass(param, options) {\n return this.api.readPriorityClass(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified PriorityClass\n * @param param the request object\n */\n replacePriorityClassWithHttpInfo(param, options) {\n return this.api.replacePriorityClassWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified PriorityClass\n * @param param the request object\n */\n replacePriorityClass(param, options) {\n return this.api.replacePriorityClass(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableStorageApi } from \"./ObservableAPI.js\";\nexport class ObjectStorageApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableStorageApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableStorageV1Api } from \"./ObservableAPI.js\";\nexport class ObjectStorageV1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableStorageV1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a CSIDriver\n * @param param the request object\n */\n createCSIDriverWithHttpInfo(param, options) {\n return this.api.createCSIDriverWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a CSIDriver\n * @param param the request object\n */\n createCSIDriver(param, options) {\n return this.api.createCSIDriver(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a CSINode\n * @param param the request object\n */\n createCSINodeWithHttpInfo(param, options) {\n return this.api.createCSINodeWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a CSINode\n * @param param the request object\n */\n createCSINode(param, options) {\n return this.api.createCSINode(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a CSIStorageCapacity\n * @param param the request object\n */\n createNamespacedCSIStorageCapacityWithHttpInfo(param, options) {\n return this.api.createNamespacedCSIStorageCapacityWithHttpInfo(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a CSIStorageCapacity\n * @param param the request object\n */\n createNamespacedCSIStorageCapacity(param, options) {\n return this.api.createNamespacedCSIStorageCapacity(param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a StorageClass\n * @param param the request object\n */\n createStorageClassWithHttpInfo(param, options) {\n return this.api.createStorageClassWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a StorageClass\n * @param param the request object\n */\n createStorageClass(param, options) {\n return this.api.createStorageClass(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a VolumeAttachment\n * @param param the request object\n */\n createVolumeAttachmentWithHttpInfo(param, options) {\n return this.api.createVolumeAttachmentWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a VolumeAttachment\n * @param param the request object\n */\n createVolumeAttachment(param, options) {\n return this.api.createVolumeAttachment(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete a CSIDriver\n * @param param the request object\n */\n deleteCSIDriverWithHttpInfo(param, options) {\n return this.api.deleteCSIDriverWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a CSIDriver\n * @param param the request object\n */\n deleteCSIDriver(param, options) {\n return this.api.deleteCSIDriver(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a CSINode\n * @param param the request object\n */\n deleteCSINodeWithHttpInfo(param, options) {\n return this.api.deleteCSINodeWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a CSINode\n * @param param the request object\n */\n deleteCSINode(param, options) {\n return this.api.deleteCSINode(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete collection of CSIDriver\n * @param param the request object\n */\n deleteCollectionCSIDriverWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionCSIDriverWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of CSIDriver\n * @param param the request object\n */\n deleteCollectionCSIDriver(param = {}, options) {\n return this.api.deleteCollectionCSIDriver(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of CSINode\n * @param param the request object\n */\n deleteCollectionCSINodeWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionCSINodeWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of CSINode\n * @param param the request object\n */\n deleteCollectionCSINode(param = {}, options) {\n return this.api.deleteCollectionCSINode(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of CSIStorageCapacity\n * @param param the request object\n */\n deleteCollectionNamespacedCSIStorageCapacityWithHttpInfo(param, options) {\n return this.api.deleteCollectionNamespacedCSIStorageCapacityWithHttpInfo(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of CSIStorageCapacity\n * @param param the request object\n */\n deleteCollectionNamespacedCSIStorageCapacity(param, options) {\n return this.api.deleteCollectionNamespacedCSIStorageCapacity(param.namespace, param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of StorageClass\n * @param param the request object\n */\n deleteCollectionStorageClassWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionStorageClassWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of StorageClass\n * @param param the request object\n */\n deleteCollectionStorageClass(param = {}, options) {\n return this.api.deleteCollectionStorageClass(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of VolumeAttachment\n * @param param the request object\n */\n deleteCollectionVolumeAttachmentWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionVolumeAttachmentWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of VolumeAttachment\n * @param param the request object\n */\n deleteCollectionVolumeAttachment(param = {}, options) {\n return this.api.deleteCollectionVolumeAttachment(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a CSIStorageCapacity\n * @param param the request object\n */\n deleteNamespacedCSIStorageCapacityWithHttpInfo(param, options) {\n return this.api.deleteNamespacedCSIStorageCapacityWithHttpInfo(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a CSIStorageCapacity\n * @param param the request object\n */\n deleteNamespacedCSIStorageCapacity(param, options) {\n return this.api.deleteNamespacedCSIStorageCapacity(param.name, param.namespace, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a StorageClass\n * @param param the request object\n */\n deleteStorageClassWithHttpInfo(param, options) {\n return this.api.deleteStorageClassWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a StorageClass\n * @param param the request object\n */\n deleteStorageClass(param, options) {\n return this.api.deleteStorageClass(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a VolumeAttachment\n * @param param the request object\n */\n deleteVolumeAttachmentWithHttpInfo(param, options) {\n return this.api.deleteVolumeAttachmentWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a VolumeAttachment\n * @param param the request object\n */\n deleteVolumeAttachment(param, options) {\n return this.api.deleteVolumeAttachment(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind CSIDriver\n * @param param the request object\n */\n listCSIDriverWithHttpInfo(param = {}, options) {\n return this.api.listCSIDriverWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind CSIDriver\n * @param param the request object\n */\n listCSIDriver(param = {}, options) {\n return this.api.listCSIDriver(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind CSINode\n * @param param the request object\n */\n listCSINodeWithHttpInfo(param = {}, options) {\n return this.api.listCSINodeWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind CSINode\n * @param param the request object\n */\n listCSINode(param = {}, options) {\n return this.api.listCSINode(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind CSIStorageCapacity\n * @param param the request object\n */\n listCSIStorageCapacityForAllNamespacesWithHttpInfo(param = {}, options) {\n return this.api.listCSIStorageCapacityForAllNamespacesWithHttpInfo(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind CSIStorageCapacity\n * @param param the request object\n */\n listCSIStorageCapacityForAllNamespaces(param = {}, options) {\n return this.api.listCSIStorageCapacityForAllNamespaces(param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.pretty, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind CSIStorageCapacity\n * @param param the request object\n */\n listNamespacedCSIStorageCapacityWithHttpInfo(param, options) {\n return this.api.listNamespacedCSIStorageCapacityWithHttpInfo(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind CSIStorageCapacity\n * @param param the request object\n */\n listNamespacedCSIStorageCapacity(param, options) {\n return this.api.listNamespacedCSIStorageCapacity(param.namespace, param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind StorageClass\n * @param param the request object\n */\n listStorageClassWithHttpInfo(param = {}, options) {\n return this.api.listStorageClassWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind StorageClass\n * @param param the request object\n */\n listStorageClass(param = {}, options) {\n return this.api.listStorageClass(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind VolumeAttachment\n * @param param the request object\n */\n listVolumeAttachmentWithHttpInfo(param = {}, options) {\n return this.api.listVolumeAttachmentWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind VolumeAttachment\n * @param param the request object\n */\n listVolumeAttachment(param = {}, options) {\n return this.api.listVolumeAttachment(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified CSIDriver\n * @param param the request object\n */\n patchCSIDriverWithHttpInfo(param, options) {\n return this.api.patchCSIDriverWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified CSIDriver\n * @param param the request object\n */\n patchCSIDriver(param, options) {\n return this.api.patchCSIDriver(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified CSINode\n * @param param the request object\n */\n patchCSINodeWithHttpInfo(param, options) {\n return this.api.patchCSINodeWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified CSINode\n * @param param the request object\n */\n patchCSINode(param, options) {\n return this.api.patchCSINode(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified CSIStorageCapacity\n * @param param the request object\n */\n patchNamespacedCSIStorageCapacityWithHttpInfo(param, options) {\n return this.api.patchNamespacedCSIStorageCapacityWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified CSIStorageCapacity\n * @param param the request object\n */\n patchNamespacedCSIStorageCapacity(param, options) {\n return this.api.patchNamespacedCSIStorageCapacity(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified StorageClass\n * @param param the request object\n */\n patchStorageClassWithHttpInfo(param, options) {\n return this.api.patchStorageClassWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified StorageClass\n * @param param the request object\n */\n patchStorageClass(param, options) {\n return this.api.patchStorageClass(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified VolumeAttachment\n * @param param the request object\n */\n patchVolumeAttachmentWithHttpInfo(param, options) {\n return this.api.patchVolumeAttachmentWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified VolumeAttachment\n * @param param the request object\n */\n patchVolumeAttachment(param, options) {\n return this.api.patchVolumeAttachment(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified VolumeAttachment\n * @param param the request object\n */\n patchVolumeAttachmentStatusWithHttpInfo(param, options) {\n return this.api.patchVolumeAttachmentStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified VolumeAttachment\n * @param param the request object\n */\n patchVolumeAttachmentStatus(param, options) {\n return this.api.patchVolumeAttachmentStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified CSIDriver\n * @param param the request object\n */\n readCSIDriverWithHttpInfo(param, options) {\n return this.api.readCSIDriverWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified CSIDriver\n * @param param the request object\n */\n readCSIDriver(param, options) {\n return this.api.readCSIDriver(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified CSINode\n * @param param the request object\n */\n readCSINodeWithHttpInfo(param, options) {\n return this.api.readCSINodeWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified CSINode\n * @param param the request object\n */\n readCSINode(param, options) {\n return this.api.readCSINode(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified CSIStorageCapacity\n * @param param the request object\n */\n readNamespacedCSIStorageCapacityWithHttpInfo(param, options) {\n return this.api.readNamespacedCSIStorageCapacityWithHttpInfo(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified CSIStorageCapacity\n * @param param the request object\n */\n readNamespacedCSIStorageCapacity(param, options) {\n return this.api.readNamespacedCSIStorageCapacity(param.name, param.namespace, param.pretty, options).toPromise();\n }\n /**\n * read the specified StorageClass\n * @param param the request object\n */\n readStorageClassWithHttpInfo(param, options) {\n return this.api.readStorageClassWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified StorageClass\n * @param param the request object\n */\n readStorageClass(param, options) {\n return this.api.readStorageClass(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified VolumeAttachment\n * @param param the request object\n */\n readVolumeAttachmentWithHttpInfo(param, options) {\n return this.api.readVolumeAttachmentWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified VolumeAttachment\n * @param param the request object\n */\n readVolumeAttachment(param, options) {\n return this.api.readVolumeAttachment(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified VolumeAttachment\n * @param param the request object\n */\n readVolumeAttachmentStatusWithHttpInfo(param, options) {\n return this.api.readVolumeAttachmentStatusWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified VolumeAttachment\n * @param param the request object\n */\n readVolumeAttachmentStatus(param, options) {\n return this.api.readVolumeAttachmentStatus(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified CSIDriver\n * @param param the request object\n */\n replaceCSIDriverWithHttpInfo(param, options) {\n return this.api.replaceCSIDriverWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified CSIDriver\n * @param param the request object\n */\n replaceCSIDriver(param, options) {\n return this.api.replaceCSIDriver(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified CSINode\n * @param param the request object\n */\n replaceCSINodeWithHttpInfo(param, options) {\n return this.api.replaceCSINodeWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified CSINode\n * @param param the request object\n */\n replaceCSINode(param, options) {\n return this.api.replaceCSINode(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified CSIStorageCapacity\n * @param param the request object\n */\n replaceNamespacedCSIStorageCapacityWithHttpInfo(param, options) {\n return this.api.replaceNamespacedCSIStorageCapacityWithHttpInfo(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified CSIStorageCapacity\n * @param param the request object\n */\n replaceNamespacedCSIStorageCapacity(param, options) {\n return this.api.replaceNamespacedCSIStorageCapacity(param.name, param.namespace, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified StorageClass\n * @param param the request object\n */\n replaceStorageClassWithHttpInfo(param, options) {\n return this.api.replaceStorageClassWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified StorageClass\n * @param param the request object\n */\n replaceStorageClass(param, options) {\n return this.api.replaceStorageClass(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified VolumeAttachment\n * @param param the request object\n */\n replaceVolumeAttachmentWithHttpInfo(param, options) {\n return this.api.replaceVolumeAttachmentWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified VolumeAttachment\n * @param param the request object\n */\n replaceVolumeAttachment(param, options) {\n return this.api.replaceVolumeAttachment(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified VolumeAttachment\n * @param param the request object\n */\n replaceVolumeAttachmentStatusWithHttpInfo(param, options) {\n return this.api.replaceVolumeAttachmentStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified VolumeAttachment\n * @param param the request object\n */\n replaceVolumeAttachmentStatus(param, options) {\n return this.api.replaceVolumeAttachmentStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableStorageV1alpha1Api } from \"./ObservableAPI.js\";\nexport class ObjectStorageV1alpha1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableStorageV1alpha1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a VolumeAttributesClass\n * @param param the request object\n */\n createVolumeAttributesClassWithHttpInfo(param, options) {\n return this.api.createVolumeAttributesClassWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a VolumeAttributesClass\n * @param param the request object\n */\n createVolumeAttributesClass(param, options) {\n return this.api.createVolumeAttributesClass(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of VolumeAttributesClass\n * @param param the request object\n */\n deleteCollectionVolumeAttributesClassWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionVolumeAttributesClassWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of VolumeAttributesClass\n * @param param the request object\n */\n deleteCollectionVolumeAttributesClass(param = {}, options) {\n return this.api.deleteCollectionVolumeAttributesClass(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a VolumeAttributesClass\n * @param param the request object\n */\n deleteVolumeAttributesClassWithHttpInfo(param, options) {\n return this.api.deleteVolumeAttributesClassWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a VolumeAttributesClass\n * @param param the request object\n */\n deleteVolumeAttributesClass(param, options) {\n return this.api.deleteVolumeAttributesClass(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind VolumeAttributesClass\n * @param param the request object\n */\n listVolumeAttributesClassWithHttpInfo(param = {}, options) {\n return this.api.listVolumeAttributesClassWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind VolumeAttributesClass\n * @param param the request object\n */\n listVolumeAttributesClass(param = {}, options) {\n return this.api.listVolumeAttributesClass(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified VolumeAttributesClass\n * @param param the request object\n */\n patchVolumeAttributesClassWithHttpInfo(param, options) {\n return this.api.patchVolumeAttributesClassWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified VolumeAttributesClass\n * @param param the request object\n */\n patchVolumeAttributesClass(param, options) {\n return this.api.patchVolumeAttributesClass(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified VolumeAttributesClass\n * @param param the request object\n */\n readVolumeAttributesClassWithHttpInfo(param, options) {\n return this.api.readVolumeAttributesClassWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified VolumeAttributesClass\n * @param param the request object\n */\n readVolumeAttributesClass(param, options) {\n return this.api.readVolumeAttributesClass(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified VolumeAttributesClass\n * @param param the request object\n */\n replaceVolumeAttributesClassWithHttpInfo(param, options) {\n return this.api.replaceVolumeAttributesClassWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified VolumeAttributesClass\n * @param param the request object\n */\n replaceVolumeAttributesClass(param, options) {\n return this.api.replaceVolumeAttributesClass(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableStorageV1beta1Api } from \"./ObservableAPI.js\";\nexport class ObjectStorageV1beta1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableStorageV1beta1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a VolumeAttributesClass\n * @param param the request object\n */\n createVolumeAttributesClassWithHttpInfo(param, options) {\n return this.api.createVolumeAttributesClassWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a VolumeAttributesClass\n * @param param the request object\n */\n createVolumeAttributesClass(param, options) {\n return this.api.createVolumeAttributesClass(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of VolumeAttributesClass\n * @param param the request object\n */\n deleteCollectionVolumeAttributesClassWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionVolumeAttributesClassWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of VolumeAttributesClass\n * @param param the request object\n */\n deleteCollectionVolumeAttributesClass(param = {}, options) {\n return this.api.deleteCollectionVolumeAttributesClass(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a VolumeAttributesClass\n * @param param the request object\n */\n deleteVolumeAttributesClassWithHttpInfo(param, options) {\n return this.api.deleteVolumeAttributesClassWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a VolumeAttributesClass\n * @param param the request object\n */\n deleteVolumeAttributesClass(param, options) {\n return this.api.deleteVolumeAttributesClass(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind VolumeAttributesClass\n * @param param the request object\n */\n listVolumeAttributesClassWithHttpInfo(param = {}, options) {\n return this.api.listVolumeAttributesClassWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind VolumeAttributesClass\n * @param param the request object\n */\n listVolumeAttributesClass(param = {}, options) {\n return this.api.listVolumeAttributesClass(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified VolumeAttributesClass\n * @param param the request object\n */\n patchVolumeAttributesClassWithHttpInfo(param, options) {\n return this.api.patchVolumeAttributesClassWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified VolumeAttributesClass\n * @param param the request object\n */\n patchVolumeAttributesClass(param, options) {\n return this.api.patchVolumeAttributesClass(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified VolumeAttributesClass\n * @param param the request object\n */\n readVolumeAttributesClassWithHttpInfo(param, options) {\n return this.api.readVolumeAttributesClassWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified VolumeAttributesClass\n * @param param the request object\n */\n readVolumeAttributesClass(param, options) {\n return this.api.readVolumeAttributesClass(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified VolumeAttributesClass\n * @param param the request object\n */\n replaceVolumeAttributesClassWithHttpInfo(param, options) {\n return this.api.replaceVolumeAttributesClassWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified VolumeAttributesClass\n * @param param the request object\n */\n replaceVolumeAttributesClass(param, options) {\n return this.api.replaceVolumeAttributesClass(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableStoragemigrationApi } from \"./ObservableAPI.js\";\nexport class ObjectStoragemigrationApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableStoragemigrationApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroupWithHttpInfo(param = {}, options) {\n return this.api.getAPIGroupWithHttpInfo(options).toPromise();\n }\n /**\n * get information of a group\n * @param param the request object\n */\n getAPIGroup(param = {}, options) {\n return this.api.getAPIGroup(options).toPromise();\n }\n}\nimport { ObservableStoragemigrationV1alpha1Api } from \"./ObservableAPI.js\";\nexport class ObjectStoragemigrationV1alpha1Api {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableStoragemigrationV1alpha1Api(configuration, requestFactory, responseProcessor);\n }\n /**\n * create a StorageVersionMigration\n * @param param the request object\n */\n createStorageVersionMigrationWithHttpInfo(param, options) {\n return this.api.createStorageVersionMigrationWithHttpInfo(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * create a StorageVersionMigration\n * @param param the request object\n */\n createStorageVersionMigration(param, options) {\n return this.api.createStorageVersionMigration(param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * delete collection of StorageVersionMigration\n * @param param the request object\n */\n deleteCollectionStorageVersionMigrationWithHttpInfo(param = {}, options) {\n return this.api.deleteCollectionStorageVersionMigrationWithHttpInfo(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete collection of StorageVersionMigration\n * @param param the request object\n */\n deleteCollectionStorageVersionMigration(param = {}, options) {\n return this.api.deleteCollectionStorageVersionMigration(param.pretty, param._continue, param.dryRun, param.fieldSelector, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.labelSelector, param.limit, param.orphanDependents, param.propagationPolicy, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.body, options).toPromise();\n }\n /**\n * delete a StorageVersionMigration\n * @param param the request object\n */\n deleteStorageVersionMigrationWithHttpInfo(param, options) {\n return this.api.deleteStorageVersionMigrationWithHttpInfo(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * delete a StorageVersionMigration\n * @param param the request object\n */\n deleteStorageVersionMigration(param, options) {\n return this.api.deleteStorageVersionMigration(param.name, param.pretty, param.dryRun, param.gracePeriodSeconds, param.ignoreStoreReadErrorWithClusterBreakingPotential, param.orphanDependents, param.propagationPolicy, param.body, options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResourcesWithHttpInfo(param = {}, options) {\n return this.api.getAPIResourcesWithHttpInfo(options).toPromise();\n }\n /**\n * get available resources\n * @param param the request object\n */\n getAPIResources(param = {}, options) {\n return this.api.getAPIResources(options).toPromise();\n }\n /**\n * list or watch objects of kind StorageVersionMigration\n * @param param the request object\n */\n listStorageVersionMigrationWithHttpInfo(param = {}, options) {\n return this.api.listStorageVersionMigrationWithHttpInfo(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * list or watch objects of kind StorageVersionMigration\n * @param param the request object\n */\n listStorageVersionMigration(param = {}, options) {\n return this.api.listStorageVersionMigration(param.pretty, param.allowWatchBookmarks, param._continue, param.fieldSelector, param.labelSelector, param.limit, param.resourceVersion, param.resourceVersionMatch, param.sendInitialEvents, param.timeoutSeconds, param.watch, options).toPromise();\n }\n /**\n * partially update the specified StorageVersionMigration\n * @param param the request object\n */\n patchStorageVersionMigrationWithHttpInfo(param, options) {\n return this.api.patchStorageVersionMigrationWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update the specified StorageVersionMigration\n * @param param the request object\n */\n patchStorageVersionMigration(param, options) {\n return this.api.patchStorageVersionMigration(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified StorageVersionMigration\n * @param param the request object\n */\n patchStorageVersionMigrationStatusWithHttpInfo(param, options) {\n return this.api.patchStorageVersionMigrationStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * partially update status of the specified StorageVersionMigration\n * @param param the request object\n */\n patchStorageVersionMigrationStatus(param, options) {\n return this.api.patchStorageVersionMigrationStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, param.force, options).toPromise();\n }\n /**\n * read the specified StorageVersionMigration\n * @param param the request object\n */\n readStorageVersionMigrationWithHttpInfo(param, options) {\n return this.api.readStorageVersionMigrationWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read the specified StorageVersionMigration\n * @param param the request object\n */\n readStorageVersionMigration(param, options) {\n return this.api.readStorageVersionMigration(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified StorageVersionMigration\n * @param param the request object\n */\n readStorageVersionMigrationStatusWithHttpInfo(param, options) {\n return this.api.readStorageVersionMigrationStatusWithHttpInfo(param.name, param.pretty, options).toPromise();\n }\n /**\n * read status of the specified StorageVersionMigration\n * @param param the request object\n */\n readStorageVersionMigrationStatus(param, options) {\n return this.api.readStorageVersionMigrationStatus(param.name, param.pretty, options).toPromise();\n }\n /**\n * replace the specified StorageVersionMigration\n * @param param the request object\n */\n replaceStorageVersionMigrationWithHttpInfo(param, options) {\n return this.api.replaceStorageVersionMigrationWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace the specified StorageVersionMigration\n * @param param the request object\n */\n replaceStorageVersionMigration(param, options) {\n return this.api.replaceStorageVersionMigration(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified StorageVersionMigration\n * @param param the request object\n */\n replaceStorageVersionMigrationStatusWithHttpInfo(param, options) {\n return this.api.replaceStorageVersionMigrationStatusWithHttpInfo(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n /**\n * replace status of the specified StorageVersionMigration\n * @param param the request object\n */\n replaceStorageVersionMigrationStatus(param, options) {\n return this.api.replaceStorageVersionMigrationStatus(param.name, param.body, param.pretty, param.dryRun, param.fieldManager, param.fieldValidation, options).toPromise();\n }\n}\nimport { ObservableVersionApi } from \"./ObservableAPI.js\";\nexport class ObjectVersionApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableVersionApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get the version information for this server\n * @param param the request object\n */\n getCodeWithHttpInfo(param = {}, options) {\n return this.api.getCodeWithHttpInfo(options).toPromise();\n }\n /**\n * get the version information for this server\n * @param param the request object\n */\n getCode(param = {}, options) {\n return this.api.getCode(options).toPromise();\n }\n}\nimport { ObservableWellKnownApi } from \"./ObservableAPI.js\";\nexport class ObjectWellKnownApi {\n constructor(configuration, requestFactory, responseProcessor) {\n this.api = new ObservableWellKnownApi(configuration, requestFactory, responseProcessor);\n }\n /**\n * get service account issuer OpenID configuration, also known as the \\'OIDC discovery doc\\'\n * @param param the request object\n */\n getServiceAccountIssuerOpenIDConfigurationWithHttpInfo(param = {}, options) {\n return this.api.getServiceAccountIssuerOpenIDConfigurationWithHttpInfo(options).toPromise();\n }\n /**\n * get service account issuer OpenID configuration, also known as the \\'OIDC discovery doc\\'\n * @param param the request object\n */\n getServiceAccountIssuerOpenIDConfiguration(param = {}, options) {\n return this.api.getServiceAccountIssuerOpenIDConfiguration(options).toPromise();\n }\n}\n//# sourceMappingURL=ObjectParamAPI.js.map","let USER_AGENT;\nif (typeof navigator === 'undefined' || !navigator.userAgent?.startsWith?.('Mozilla/5.0 ')) {\n const NAME = 'oauth4webapi';\n const VERSION = 'v3.5.1';\n USER_AGENT = `${NAME}/${VERSION}`;\n}\nfunction looseInstanceOf(input, expected) {\n if (input == null) {\n return false;\n }\n try {\n return (input instanceof expected ||\n Object.getPrototypeOf(input)[Symbol.toStringTag] === expected.prototype[Symbol.toStringTag]);\n }\n catch {\n return false;\n }\n}\nconst ERR_INVALID_ARG_VALUE = 'ERR_INVALID_ARG_VALUE';\nconst ERR_INVALID_ARG_TYPE = 'ERR_INVALID_ARG_TYPE';\nfunction CodedTypeError(message, code, cause) {\n const err = new TypeError(message, { cause });\n Object.assign(err, { code });\n return err;\n}\nexport const allowInsecureRequests = Symbol();\nexport const clockSkew = Symbol();\nexport const clockTolerance = Symbol();\nexport const customFetch = Symbol();\nexport const modifyAssertion = Symbol();\nexport const jweDecrypt = Symbol();\nexport const jwksCache = Symbol();\nconst encoder = new TextEncoder();\nconst decoder = new TextDecoder();\nfunction buf(input) {\n if (typeof input === 'string') {\n return encoder.encode(input);\n }\n return decoder.decode(input);\n}\nconst CHUNK_SIZE = 0x8000;\nfunction encodeBase64Url(input) {\n if (input instanceof ArrayBuffer) {\n input = new Uint8Array(input);\n }\n const arr = [];\n for (let i = 0; i < input.byteLength; i += CHUNK_SIZE) {\n arr.push(String.fromCharCode.apply(null, input.subarray(i, i + CHUNK_SIZE)));\n }\n return btoa(arr.join('')).replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n}\nfunction decodeBase64Url(input) {\n try {\n const binary = atob(input.replace(/-/g, '+').replace(/_/g, '/').replace(/\\s/g, ''));\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n }\n catch (cause) {\n throw CodedTypeError('The input to be decoded is not correctly encoded.', ERR_INVALID_ARG_VALUE, cause);\n }\n}\nfunction b64u(input) {\n if (typeof input === 'string') {\n return decodeBase64Url(input);\n }\n return encodeBase64Url(input);\n}\nexport class UnsupportedOperationError extends Error {\n code;\n constructor(message, options) {\n super(message, options);\n this.name = this.constructor.name;\n this.code = UNSUPPORTED_OPERATION;\n Error.captureStackTrace?.(this, this.constructor);\n }\n}\nexport class OperationProcessingError extends Error {\n code;\n constructor(message, options) {\n super(message, options);\n this.name = this.constructor.name;\n if (options?.code) {\n this.code = options?.code;\n }\n Error.captureStackTrace?.(this, this.constructor);\n }\n}\nfunction OPE(message, code, cause) {\n return new OperationProcessingError(message, { code, cause });\n}\nfunction assertCryptoKey(key, it) {\n if (!(key instanceof CryptoKey)) {\n throw CodedTypeError(`${it} must be a CryptoKey`, ERR_INVALID_ARG_TYPE);\n }\n}\nfunction assertPrivateKey(key, it) {\n assertCryptoKey(key, it);\n if (key.type !== 'private') {\n throw CodedTypeError(`${it} must be a private CryptoKey`, ERR_INVALID_ARG_VALUE);\n }\n}\nfunction assertPublicKey(key, it) {\n assertCryptoKey(key, it);\n if (key.type !== 'public') {\n throw CodedTypeError(`${it} must be a public CryptoKey`, ERR_INVALID_ARG_VALUE);\n }\n}\nfunction normalizeTyp(value) {\n return value.toLowerCase().replace(/^application\\//, '');\n}\nfunction isJsonObject(input) {\n if (input === null || typeof input !== 'object' || Array.isArray(input)) {\n return false;\n }\n return true;\n}\nfunction prepareHeaders(input) {\n if (looseInstanceOf(input, Headers)) {\n input = Object.fromEntries(input.entries());\n }\n const headers = new Headers(input);\n if (USER_AGENT && !headers.has('user-agent')) {\n headers.set('user-agent', USER_AGENT);\n }\n if (headers.has('authorization')) {\n throw CodedTypeError('\"options.headers\" must not include the \"authorization\" header name', ERR_INVALID_ARG_VALUE);\n }\n return headers;\n}\nfunction signal(value) {\n if (typeof value === 'function') {\n value = value();\n }\n if (!(value instanceof AbortSignal)) {\n throw CodedTypeError('\"options.signal\" must return or be an instance of AbortSignal', ERR_INVALID_ARG_TYPE);\n }\n return value;\n}\nfunction replaceDoubleSlash(pathname) {\n if (pathname.includes('//')) {\n return pathname.replace('//', '/');\n }\n return pathname;\n}\nfunction prependWellKnown(url, wellKnown) {\n if (url.pathname === '/') {\n url.pathname = wellKnown;\n }\n else {\n url.pathname = replaceDoubleSlash(`${wellKnown}/${url.pathname}`);\n }\n return url;\n}\nfunction appendWellKnown(url, wellKnown) {\n url.pathname = replaceDoubleSlash(`${url.pathname}/${wellKnown}`);\n return url;\n}\nasync function performDiscovery(input, urlName, transform, options) {\n if (!(input instanceof URL)) {\n throw CodedTypeError(`\"${urlName}\" must be an instance of URL`, ERR_INVALID_ARG_TYPE);\n }\n checkProtocol(input, options?.[allowInsecureRequests] !== true);\n const url = transform(new URL(input.href));\n const headers = prepareHeaders(options?.headers);\n headers.set('accept', 'application/json');\n return (options?.[customFetch] || fetch)(url.href, {\n body: undefined,\n headers: Object.fromEntries(headers.entries()),\n method: 'GET',\n redirect: 'manual',\n signal: options?.signal ? signal(options.signal) : undefined,\n });\n}\nexport async function discoveryRequest(issuerIdentifier, options) {\n return performDiscovery(issuerIdentifier, 'issuerIdentifier', (url) => {\n switch (options?.algorithm) {\n case undefined:\n case 'oidc':\n appendWellKnown(url, '.well-known/openid-configuration');\n break;\n case 'oauth2':\n prependWellKnown(url, '.well-known/oauth-authorization-server');\n break;\n default:\n throw CodedTypeError('\"options.algorithm\" must be \"oidc\" (default), or \"oauth2\"', ERR_INVALID_ARG_VALUE);\n }\n return url;\n }, options);\n}\nfunction assertNumber(input, allow0, it, code, cause) {\n try {\n if (typeof input !== 'number' || !Number.isFinite(input)) {\n throw CodedTypeError(`${it} must be a number`, ERR_INVALID_ARG_TYPE, cause);\n }\n if (input > 0)\n return;\n if (allow0) {\n if (input !== 0) {\n throw CodedTypeError(`${it} must be a non-negative number`, ERR_INVALID_ARG_VALUE, cause);\n }\n return;\n }\n throw CodedTypeError(`${it} must be a positive number`, ERR_INVALID_ARG_VALUE, cause);\n }\n catch (err) {\n if (code) {\n throw OPE(err.message, code, cause);\n }\n throw err;\n }\n}\nfunction assertString(input, it, code, cause) {\n try {\n if (typeof input !== 'string') {\n throw CodedTypeError(`${it} must be a string`, ERR_INVALID_ARG_TYPE, cause);\n }\n if (input.length === 0) {\n throw CodedTypeError(`${it} must not be empty`, ERR_INVALID_ARG_VALUE, cause);\n }\n }\n catch (err) {\n if (code) {\n throw OPE(err.message, code, cause);\n }\n throw err;\n }\n}\nexport async function processDiscoveryResponse(expectedIssuerIdentifier, response) {\n const expected = expectedIssuerIdentifier;\n if (!(expected instanceof URL) && expected !== _nodiscoverycheck) {\n throw CodedTypeError('\"expectedIssuerIdentifier\" must be an instance of URL', ERR_INVALID_ARG_TYPE);\n }\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n if (response.status !== 200) {\n throw OPE('\"response\" is not a conform Authorization Server Metadata response (unexpected HTTP status code)', RESPONSE_IS_NOT_CONFORM, response);\n }\n assertReadableResponse(response);\n const json = await getResponseJsonBody(response);\n assertString(json.issuer, '\"response\" body \"issuer\" property', INVALID_RESPONSE, { body: json });\n if (expected !== _nodiscoverycheck && new URL(json.issuer).href !== expected.href) {\n throw OPE('\"response\" body \"issuer\" property does not match the expected value', JSON_ATTRIBUTE_COMPARISON, { expected: expected.href, body: json, attribute: 'issuer' });\n }\n return json;\n}\nfunction assertApplicationJson(response) {\n assertContentType(response, 'application/json');\n}\nfunction notJson(response, ...types) {\n let msg = '\"response\" content-type must be ';\n if (types.length > 2) {\n const last = types.pop();\n msg += `${types.join(', ')}, or ${last}`;\n }\n else if (types.length === 2) {\n msg += `${types[0]} or ${types[1]}`;\n }\n else {\n msg += types[0];\n }\n return OPE(msg, RESPONSE_IS_NOT_JSON, response);\n}\nfunction assertContentTypes(response, ...types) {\n if (!types.includes(getContentType(response))) {\n throw notJson(response, ...types);\n }\n}\nfunction assertContentType(response, contentType) {\n if (getContentType(response) !== contentType) {\n throw notJson(response, contentType);\n }\n}\nfunction randomBytes() {\n return b64u(crypto.getRandomValues(new Uint8Array(32)));\n}\nexport function generateRandomCodeVerifier() {\n return randomBytes();\n}\nexport function generateRandomState() {\n return randomBytes();\n}\nexport function generateRandomNonce() {\n return randomBytes();\n}\nexport async function calculatePKCECodeChallenge(codeVerifier) {\n assertString(codeVerifier, 'codeVerifier');\n return b64u(await crypto.subtle.digest('SHA-256', buf(codeVerifier)));\n}\nfunction getKeyAndKid(input) {\n if (input instanceof CryptoKey) {\n return { key: input };\n }\n if (!(input?.key instanceof CryptoKey)) {\n return {};\n }\n if (input.kid !== undefined) {\n assertString(input.kid, '\"kid\"');\n }\n return {\n key: input.key,\n kid: input.kid,\n };\n}\nfunction psAlg(key) {\n switch (key.algorithm.hash.name) {\n case 'SHA-256':\n return 'PS256';\n case 'SHA-384':\n return 'PS384';\n case 'SHA-512':\n return 'PS512';\n default:\n throw new UnsupportedOperationError('unsupported RsaHashedKeyAlgorithm hash name', {\n cause: key,\n });\n }\n}\nfunction rsAlg(key) {\n switch (key.algorithm.hash.name) {\n case 'SHA-256':\n return 'RS256';\n case 'SHA-384':\n return 'RS384';\n case 'SHA-512':\n return 'RS512';\n default:\n throw new UnsupportedOperationError('unsupported RsaHashedKeyAlgorithm hash name', {\n cause: key,\n });\n }\n}\nfunction esAlg(key) {\n switch (key.algorithm.namedCurve) {\n case 'P-256':\n return 'ES256';\n case 'P-384':\n return 'ES384';\n case 'P-521':\n return 'ES512';\n default:\n throw new UnsupportedOperationError('unsupported EcKeyAlgorithm namedCurve', { cause: key });\n }\n}\nfunction keyToJws(key) {\n switch (key.algorithm.name) {\n case 'RSA-PSS':\n return psAlg(key);\n case 'RSASSA-PKCS1-v1_5':\n return rsAlg(key);\n case 'ECDSA':\n return esAlg(key);\n case 'Ed25519':\n case 'EdDSA':\n return 'Ed25519';\n default:\n throw new UnsupportedOperationError('unsupported CryptoKey algorithm name', { cause: key });\n }\n}\nfunction getClockSkew(client) {\n const skew = client?.[clockSkew];\n return typeof skew === 'number' && Number.isFinite(skew) ? skew : 0;\n}\nfunction getClockTolerance(client) {\n const tolerance = client?.[clockTolerance];\n return typeof tolerance === 'number' && Number.isFinite(tolerance) && Math.sign(tolerance) !== -1\n ? tolerance\n : 30;\n}\nfunction epochTime() {\n return Math.floor(Date.now() / 1000);\n}\nfunction assertAs(as) {\n if (typeof as !== 'object' || as === null) {\n throw CodedTypeError('\"as\" must be an object', ERR_INVALID_ARG_TYPE);\n }\n assertString(as.issuer, '\"as.issuer\"');\n}\nfunction assertClient(client) {\n if (typeof client !== 'object' || client === null) {\n throw CodedTypeError('\"client\" must be an object', ERR_INVALID_ARG_TYPE);\n }\n assertString(client.client_id, '\"client.client_id\"');\n}\nfunction formUrlEncode(token) {\n return encodeURIComponent(token).replace(/(?:[-_.!~*'()]|%20)/g, (substring) => {\n switch (substring) {\n case '-':\n case '_':\n case '.':\n case '!':\n case '~':\n case '*':\n case \"'\":\n case '(':\n case ')':\n return `%${substring.charCodeAt(0).toString(16).toUpperCase()}`;\n case '%20':\n return '+';\n default:\n throw new Error();\n }\n });\n}\nexport function ClientSecretPost(clientSecret) {\n assertString(clientSecret, '\"clientSecret\"');\n return (_as, client, body, _headers) => {\n body.set('client_id', client.client_id);\n body.set('client_secret', clientSecret);\n };\n}\nexport function ClientSecretBasic(clientSecret) {\n assertString(clientSecret, '\"clientSecret\"');\n return (_as, client, _body, headers) => {\n const username = formUrlEncode(client.client_id);\n const password = formUrlEncode(clientSecret);\n const credentials = btoa(`${username}:${password}`);\n headers.set('authorization', `Basic ${credentials}`);\n };\n}\nfunction clientAssertionPayload(as, client) {\n const now = epochTime() + getClockSkew(client);\n return {\n jti: randomBytes(),\n aud: as.issuer,\n exp: now + 60,\n iat: now,\n nbf: now,\n iss: client.client_id,\n sub: client.client_id,\n };\n}\nexport function PrivateKeyJwt(clientPrivateKey, options) {\n const { key, kid } = getKeyAndKid(clientPrivateKey);\n assertPrivateKey(key, '\"clientPrivateKey.key\"');\n return async (as, client, body, _headers) => {\n const header = { alg: keyToJws(key), kid };\n const payload = clientAssertionPayload(as, client);\n options?.[modifyAssertion]?.(header, payload);\n body.set('client_id', client.client_id);\n body.set('client_assertion_type', 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer');\n body.set('client_assertion', await signJwt(header, payload, key));\n };\n}\nexport function ClientSecretJwt(clientSecret, options) {\n assertString(clientSecret, '\"clientSecret\"');\n const modify = options?.[modifyAssertion];\n let key;\n return async (as, client, body, _headers) => {\n key ||= await crypto.subtle.importKey('raw', buf(clientSecret), { hash: 'SHA-256', name: 'HMAC' }, false, ['sign']);\n const header = { alg: 'HS256' };\n const payload = clientAssertionPayload(as, client);\n modify?.(header, payload);\n const data = `${b64u(buf(JSON.stringify(header)))}.${b64u(buf(JSON.stringify(payload)))}`;\n const hmac = await crypto.subtle.sign(key.algorithm, key, buf(data));\n body.set('client_id', client.client_id);\n body.set('client_assertion_type', 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer');\n body.set('client_assertion', `${data}.${b64u(new Uint8Array(hmac))}`);\n };\n}\nexport function None() {\n return (_as, client, body, _headers) => {\n body.set('client_id', client.client_id);\n };\n}\nexport function TlsClientAuth() {\n return None();\n}\nasync function signJwt(header, payload, key) {\n if (!key.usages.includes('sign')) {\n throw CodedTypeError('CryptoKey instances used for signing assertions must include \"sign\" in their \"usages\"', ERR_INVALID_ARG_VALUE);\n }\n const input = `${b64u(buf(JSON.stringify(header)))}.${b64u(buf(JSON.stringify(payload)))}`;\n const signature = b64u(await crypto.subtle.sign(keyToSubtle(key), key, buf(input)));\n return `${input}.${signature}`;\n}\nexport async function issueRequestObject(as, client, parameters, privateKey, options) {\n assertAs(as);\n assertClient(client);\n parameters = new URLSearchParams(parameters);\n const { key, kid } = getKeyAndKid(privateKey);\n assertPrivateKey(key, '\"privateKey.key\"');\n parameters.set('client_id', client.client_id);\n const now = epochTime() + getClockSkew(client);\n const claims = {\n ...Object.fromEntries(parameters.entries()),\n jti: randomBytes(),\n aud: as.issuer,\n exp: now + 60,\n iat: now,\n nbf: now,\n iss: client.client_id,\n };\n let resource;\n if (parameters.has('resource') &&\n (resource = parameters.getAll('resource')) &&\n resource.length > 1) {\n claims.resource = resource;\n }\n {\n let value = parameters.get('max_age');\n if (value !== null) {\n claims.max_age = parseInt(value, 10);\n assertNumber(claims.max_age, true, '\"max_age\" parameter');\n }\n }\n {\n let value = parameters.get('claims');\n if (value !== null) {\n try {\n claims.claims = JSON.parse(value);\n }\n catch (cause) {\n throw OPE('failed to parse the \"claims\" parameter as JSON', PARSE_ERROR, cause);\n }\n if (!isJsonObject(claims.claims)) {\n throw CodedTypeError('\"claims\" parameter must be a JSON with a top level object', ERR_INVALID_ARG_VALUE);\n }\n }\n }\n {\n let value = parameters.get('authorization_details');\n if (value !== null) {\n try {\n claims.authorization_details = JSON.parse(value);\n }\n catch (cause) {\n throw OPE('failed to parse the \"authorization_details\" parameter as JSON', PARSE_ERROR, cause);\n }\n if (!Array.isArray(claims.authorization_details)) {\n throw CodedTypeError('\"authorization_details\" parameter must be a JSON with a top level array', ERR_INVALID_ARG_VALUE);\n }\n }\n }\n const header = {\n alg: keyToJws(key),\n typ: 'oauth-authz-req+jwt',\n kid,\n };\n options?.[modifyAssertion]?.(header, claims);\n return signJwt(header, claims, key);\n}\nlet jwkCache;\nasync function getSetPublicJwkCache(key) {\n const { kty, e, n, x, y, crv } = await crypto.subtle.exportKey('jwk', key);\n const jwk = { kty, e, n, x, y, crv };\n jwkCache.set(key, jwk);\n return jwk;\n}\nasync function publicJwk(key) {\n jwkCache ||= new WeakMap();\n return jwkCache.get(key) || getSetPublicJwkCache(key);\n}\nconst URLParse = URL.parse\n ?\n (url, base) => URL.parse(url, base)\n : (url, base) => {\n try {\n return new URL(url, base);\n }\n catch {\n return null;\n }\n };\nexport function checkProtocol(url, enforceHttps) {\n if (enforceHttps && url.protocol !== 'https:') {\n throw OPE('only requests to HTTPS are allowed', HTTP_REQUEST_FORBIDDEN, url);\n }\n if (url.protocol !== 'https:' && url.protocol !== 'http:') {\n throw OPE('only HTTP and HTTPS requests are allowed', REQUEST_PROTOCOL_FORBIDDEN, url);\n }\n}\nfunction validateEndpoint(value, endpoint, useMtlsAlias, enforceHttps) {\n let url;\n if (typeof value !== 'string' || !(url = URLParse(value))) {\n throw OPE(`authorization server metadata does not contain a valid ${useMtlsAlias ? `\"as.mtls_endpoint_aliases.${endpoint}\"` : `\"as.${endpoint}\"`}`, value === undefined ? MISSING_SERVER_METADATA : INVALID_SERVER_METADATA, { attribute: useMtlsAlias ? `mtls_endpoint_aliases.${endpoint}` : endpoint });\n }\n checkProtocol(url, enforceHttps);\n return url;\n}\nexport function resolveEndpoint(as, endpoint, useMtlsAlias, enforceHttps) {\n if (useMtlsAlias && as.mtls_endpoint_aliases && endpoint in as.mtls_endpoint_aliases) {\n return validateEndpoint(as.mtls_endpoint_aliases[endpoint], endpoint, useMtlsAlias, enforceHttps);\n }\n return validateEndpoint(as[endpoint], endpoint, useMtlsAlias, enforceHttps);\n}\nexport async function pushedAuthorizationRequest(as, client, clientAuthentication, parameters, options) {\n assertAs(as);\n assertClient(client);\n const url = resolveEndpoint(as, 'pushed_authorization_request_endpoint', client.use_mtls_endpoint_aliases, options?.[allowInsecureRequests] !== true);\n const body = new URLSearchParams(parameters);\n body.set('client_id', client.client_id);\n const headers = prepareHeaders(options?.headers);\n headers.set('accept', 'application/json');\n if (options?.DPoP !== undefined) {\n assertDPoP(options.DPoP);\n await options.DPoP.addProof(url, headers, 'POST');\n }\n const response = await authenticatedRequest(as, client, clientAuthentication, url, body, headers, options);\n options?.DPoP?.cacheNonce(response);\n return response;\n}\nclass DPoPHandler {\n #header;\n #privateKey;\n #publicKey;\n #clockSkew;\n #modifyAssertion;\n #map;\n #jkt;\n constructor(client, keyPair, options) {\n assertPrivateKey(keyPair?.privateKey, '\"DPoP.privateKey\"');\n assertPublicKey(keyPair?.publicKey, '\"DPoP.publicKey\"');\n if (!keyPair.publicKey.extractable) {\n throw CodedTypeError('\"DPoP.publicKey.extractable\" must be true', ERR_INVALID_ARG_VALUE);\n }\n this.#modifyAssertion = options?.[modifyAssertion];\n this.#clockSkew = getClockSkew(client);\n this.#privateKey = keyPair.privateKey;\n this.#publicKey = keyPair.publicKey;\n branded.add(this);\n }\n #get(key) {\n this.#map ||= new Map();\n let item = this.#map.get(key);\n if (item) {\n this.#map.delete(key);\n this.#map.set(key, item);\n }\n return item;\n }\n #set(key, val) {\n this.#map ||= new Map();\n this.#map.delete(key);\n if (this.#map.size === 100) {\n this.#map.delete(this.#map.keys().next().value);\n }\n this.#map.set(key, val);\n }\n async calculateThumbprint() {\n if (!this.#jkt) {\n const jwk = await crypto.subtle.exportKey('jwk', this.#publicKey);\n let components;\n switch (jwk.kty) {\n case 'EC':\n components = { crv: jwk.crv, kty: jwk.kty, x: jwk.x, y: jwk.y };\n break;\n case 'OKP':\n components = { crv: jwk.crv, kty: jwk.kty, x: jwk.x };\n break;\n case 'RSA':\n components = { e: jwk.e, kty: jwk.kty, n: jwk.n };\n break;\n default:\n throw new UnsupportedOperationError('unsupported JWK', { cause: { jwk } });\n }\n this.#jkt ||= b64u(await crypto.subtle.digest({ name: 'SHA-256' }, buf(JSON.stringify(components))));\n }\n return this.#jkt;\n }\n async addProof(url, headers, htm, accessToken) {\n this.#header ||= {\n alg: keyToJws(this.#privateKey),\n typ: 'dpop+jwt',\n jwk: await publicJwk(this.#publicKey),\n };\n const nonce = this.#get(url.origin);\n const now = epochTime() + this.#clockSkew;\n const payload = {\n iat: now,\n jti: randomBytes(),\n htm,\n nonce,\n htu: `${url.origin}${url.pathname}`,\n ath: accessToken ? b64u(await crypto.subtle.digest('SHA-256', buf(accessToken))) : undefined,\n };\n this.#modifyAssertion?.(this.#header, payload);\n headers.set('dpop', await signJwt(this.#header, payload, this.#privateKey));\n }\n cacheNonce(response) {\n try {\n const nonce = response.headers.get('dpop-nonce');\n if (nonce) {\n this.#set(new URL(response.url).origin, nonce);\n }\n }\n catch { }\n }\n}\nexport function isDPoPNonceError(err) {\n if (err instanceof WWWAuthenticateChallengeError) {\n const { 0: challenge, length } = err.cause;\n return (length === 1 && challenge.scheme === 'dpop' && challenge.parameters.error === 'use_dpop_nonce');\n }\n if (err instanceof ResponseBodyError) {\n return err.error === 'use_dpop_nonce';\n }\n return false;\n}\nexport function DPoP(client, keyPair, options) {\n return new DPoPHandler(client, keyPair, options);\n}\nexport class ResponseBodyError extends Error {\n cause;\n code;\n error;\n status;\n error_description;\n response;\n constructor(message, options) {\n super(message, options);\n this.name = this.constructor.name;\n this.code = RESPONSE_BODY_ERROR;\n this.cause = options.cause;\n this.error = options.cause.error;\n this.status = options.response.status;\n this.error_description = options.cause.error_description;\n Object.defineProperty(this, 'response', { enumerable: false, value: options.response });\n Error.captureStackTrace?.(this, this.constructor);\n }\n}\nexport class AuthorizationResponseError extends Error {\n cause;\n code;\n error;\n error_description;\n constructor(message, options) {\n super(message, options);\n this.name = this.constructor.name;\n this.code = AUTHORIZATION_RESPONSE_ERROR;\n this.cause = options.cause;\n this.error = options.cause.get('error');\n this.error_description = options.cause.get('error_description') ?? undefined;\n Error.captureStackTrace?.(this, this.constructor);\n }\n}\nexport class WWWAuthenticateChallengeError extends Error {\n cause;\n code;\n response;\n status;\n constructor(message, options) {\n super(message, options);\n this.name = this.constructor.name;\n this.code = WWW_AUTHENTICATE_CHALLENGE;\n this.cause = options.cause;\n this.status = options.response.status;\n this.response = options.response;\n Object.defineProperty(this, 'response', { enumerable: false });\n Error.captureStackTrace?.(this, this.constructor);\n }\n}\nconst tokenMatch = \"[a-zA-Z0-9!#$%&\\\\'\\\\*\\\\+\\\\-\\\\.\\\\^_`\\\\|~]+\";\nconst token68Match = '[a-zA-Z0-9\\\\-\\\\._\\\\~\\\\+\\\\/]+[=]{0,2}';\nconst quotedMatch = '\"((?:[^\"\\\\\\\\]|\\\\\\\\.)*)\"';\nconst quotedParamMatcher = '(' + tokenMatch + ')\\\\s*=\\\\s*' + quotedMatch;\nconst paramMatcher = '(' + tokenMatch + ')\\\\s*=\\\\s*(' + tokenMatch + ')';\nconst schemeRE = new RegExp('^[,\\\\s]*(' + tokenMatch + ')\\\\s(.*)');\nconst quotedParamRE = new RegExp('^[,\\\\s]*' + quotedParamMatcher + '[,\\\\s]*(.*)');\nconst unquotedParamRE = new RegExp('^[,\\\\s]*' + paramMatcher + '[,\\\\s]*(.*)');\nconst token68ParamRE = new RegExp('^(' + token68Match + ')(?:$|[,\\\\s])(.*)');\nfunction parseWwwAuthenticateChallenges(response) {\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n const header = response.headers.get('www-authenticate');\n if (header === null) {\n return undefined;\n }\n const challenges = [];\n let rest = header;\n while (rest) {\n let match = rest.match(schemeRE);\n const scheme = match?.['1'].toLowerCase();\n rest = match?.['2'];\n if (!scheme) {\n return undefined;\n }\n const parameters = {};\n let token68;\n while (rest) {\n let key;\n let value;\n if ((match = rest.match(quotedParamRE))) {\n ;\n [, key, value, rest] = match;\n if (value.includes('\\\\')) {\n try {\n value = JSON.parse(`\"${value}\"`);\n }\n catch { }\n }\n parameters[key.toLowerCase()] = value;\n continue;\n }\n if ((match = rest.match(unquotedParamRE))) {\n ;\n [, key, value, rest] = match;\n parameters[key.toLowerCase()] = value;\n continue;\n }\n if ((match = rest.match(token68ParamRE))) {\n if (Object.keys(parameters).length) {\n break;\n }\n ;\n [, token68, rest] = match;\n break;\n }\n return undefined;\n }\n const challenge = { scheme, parameters };\n if (token68) {\n challenge.token68 = token68;\n }\n challenges.push(challenge);\n }\n if (!challenges.length) {\n return undefined;\n }\n return challenges;\n}\nexport async function processPushedAuthorizationResponse(as, client, response) {\n assertAs(as);\n assertClient(client);\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n checkAuthenticationChallenges(response);\n await checkOAuthBodyError(response, 201, 'Pushed Authorization Request Endpoint');\n assertReadableResponse(response);\n const json = await getResponseJsonBody(response);\n assertString(json.request_uri, '\"response\" body \"request_uri\" property', INVALID_RESPONSE, {\n body: json,\n });\n let expiresIn = typeof json.expires_in !== 'number' ? parseFloat(json.expires_in) : json.expires_in;\n assertNumber(expiresIn, false, '\"response\" body \"expires_in\" property', INVALID_RESPONSE, {\n body: json,\n });\n json.expires_in = expiresIn;\n return json;\n}\nasync function parseOAuthResponseErrorBody(response) {\n if (response.status > 399 && response.status < 500) {\n assertReadableResponse(response);\n assertApplicationJson(response);\n try {\n const json = await response.clone().json();\n if (isJsonObject(json) && typeof json.error === 'string' && json.error.length) {\n return json;\n }\n }\n catch { }\n }\n return undefined;\n}\nasync function checkOAuthBodyError(response, expected, label) {\n if (response.status !== expected) {\n let err;\n if ((err = await parseOAuthResponseErrorBody(response))) {\n await response.body?.cancel();\n throw new ResponseBodyError('server responded with an error in the response body', {\n cause: err,\n response,\n });\n }\n throw OPE(`\"response\" is not a conform ${label} response (unexpected HTTP status code)`, RESPONSE_IS_NOT_CONFORM, response);\n }\n}\nfunction assertDPoP(option) {\n if (!branded.has(option)) {\n throw CodedTypeError('\"options.DPoP\" is not a valid DPoPHandle', ERR_INVALID_ARG_VALUE);\n }\n}\nasync function resourceRequest(accessToken, method, url, headers, body, options) {\n assertString(accessToken, '\"accessToken\"');\n if (!(url instanceof URL)) {\n throw CodedTypeError('\"url\" must be an instance of URL', ERR_INVALID_ARG_TYPE);\n }\n checkProtocol(url, options?.[allowInsecureRequests] !== true);\n headers = prepareHeaders(headers);\n if (options?.DPoP) {\n assertDPoP(options.DPoP);\n await options.DPoP.addProof(url, headers, method.toUpperCase(), accessToken);\n }\n headers.set('authorization', `${headers.has('dpop') ? 'DPoP' : 'Bearer'} ${accessToken}`);\n const response = await (options?.[customFetch] || fetch)(url.href, {\n body,\n headers: Object.fromEntries(headers.entries()),\n method,\n redirect: 'manual',\n signal: options?.signal ? signal(options.signal) : undefined,\n });\n options?.DPoP?.cacheNonce(response);\n return response;\n}\nexport async function protectedResourceRequest(accessToken, method, url, headers, body, options) {\n const response = await resourceRequest(accessToken, method, url, headers, body, options);\n checkAuthenticationChallenges(response);\n return response;\n}\nexport async function userInfoRequest(as, client, accessToken, options) {\n assertAs(as);\n assertClient(client);\n const url = resolveEndpoint(as, 'userinfo_endpoint', client.use_mtls_endpoint_aliases, options?.[allowInsecureRequests] !== true);\n const headers = prepareHeaders(options?.headers);\n if (client.userinfo_signed_response_alg) {\n headers.set('accept', 'application/jwt');\n }\n else {\n headers.set('accept', 'application/json');\n headers.append('accept', 'application/jwt');\n }\n return resourceRequest(accessToken, 'GET', url, headers, null, {\n ...options,\n [clockSkew]: getClockSkew(client),\n });\n}\nlet jwksMap;\nfunction setJwksCache(as, jwks, uat, cache) {\n jwksMap ||= new WeakMap();\n jwksMap.set(as, {\n jwks,\n uat,\n get age() {\n return epochTime() - this.uat;\n },\n });\n if (cache) {\n Object.assign(cache, { jwks: structuredClone(jwks), uat });\n }\n}\nfunction isFreshJwksCache(input) {\n if (typeof input !== 'object' || input === null) {\n return false;\n }\n if (!('uat' in input) || typeof input.uat !== 'number' || epochTime() - input.uat >= 300) {\n return false;\n }\n if (!('jwks' in input) ||\n !isJsonObject(input.jwks) ||\n !Array.isArray(input.jwks.keys) ||\n !Array.prototype.every.call(input.jwks.keys, isJsonObject)) {\n return false;\n }\n return true;\n}\nfunction clearJwksCache(as, cache) {\n jwksMap?.delete(as);\n delete cache?.jwks;\n delete cache?.uat;\n}\nasync function getPublicSigKeyFromIssuerJwksUri(as, options, header) {\n const { alg, kid } = header;\n checkSupportedJwsAlg(header);\n if (!jwksMap?.has(as) && isFreshJwksCache(options?.[jwksCache])) {\n setJwksCache(as, options?.[jwksCache].jwks, options?.[jwksCache].uat);\n }\n let jwks;\n let age;\n if (jwksMap?.has(as)) {\n ;\n ({ jwks, age } = jwksMap.get(as));\n if (age >= 300) {\n clearJwksCache(as, options?.[jwksCache]);\n return getPublicSigKeyFromIssuerJwksUri(as, options, header);\n }\n }\n else {\n jwks = await jwksRequest(as, options).then(processJwksResponse);\n age = 0;\n setJwksCache(as, jwks, epochTime(), options?.[jwksCache]);\n }\n let kty;\n switch (alg.slice(0, 2)) {\n case 'RS':\n case 'PS':\n kty = 'RSA';\n break;\n case 'ES':\n kty = 'EC';\n break;\n case 'Ed':\n kty = 'OKP';\n break;\n default:\n throw new UnsupportedOperationError('unsupported JWS algorithm', { cause: { alg } });\n }\n const candidates = jwks.keys.filter((jwk) => {\n if (jwk.kty !== kty) {\n return false;\n }\n if (kid !== undefined && kid !== jwk.kid) {\n return false;\n }\n if (jwk.alg !== undefined && alg !== jwk.alg) {\n return false;\n }\n if (jwk.use !== undefined && jwk.use !== 'sig') {\n return false;\n }\n if (jwk.key_ops?.includes('verify') === false) {\n return false;\n }\n switch (true) {\n case alg === 'ES256' && jwk.crv !== 'P-256':\n case alg === 'ES384' && jwk.crv !== 'P-384':\n case alg === 'ES512' && jwk.crv !== 'P-521':\n case alg === 'Ed25519' && jwk.crv !== 'Ed25519':\n case alg === 'EdDSA' && jwk.crv !== 'Ed25519':\n return false;\n }\n return true;\n });\n const { 0: jwk, length } = candidates;\n if (!length) {\n if (age >= 60) {\n clearJwksCache(as, options?.[jwksCache]);\n return getPublicSigKeyFromIssuerJwksUri(as, options, header);\n }\n throw OPE('error when selecting a JWT verification key, no applicable keys found', KEY_SELECTION, { header, candidates, jwks_uri: new URL(as.jwks_uri) });\n }\n if (length !== 1) {\n throw OPE('error when selecting a JWT verification key, multiple applicable keys found, a \"kid\" JWT Header Parameter is required', KEY_SELECTION, { header, candidates, jwks_uri: new URL(as.jwks_uri) });\n }\n return importJwk(alg, jwk);\n}\nexport const skipSubjectCheck = Symbol();\nexport function getContentType(input) {\n return input.headers.get('content-type')?.split(';')[0];\n}\nexport async function processUserInfoResponse(as, client, expectedSubject, response, options) {\n assertAs(as);\n assertClient(client);\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n checkAuthenticationChallenges(response);\n if (response.status !== 200) {\n throw OPE('\"response\" is not a conform UserInfo Endpoint response (unexpected HTTP status code)', RESPONSE_IS_NOT_CONFORM, response);\n }\n assertReadableResponse(response);\n let json;\n if (getContentType(response) === 'application/jwt') {\n const { claims, jwt } = await validateJwt(await response.text(), checkSigningAlgorithm.bind(undefined, client.userinfo_signed_response_alg, as.userinfo_signing_alg_values_supported, undefined), getClockSkew(client), getClockTolerance(client), options?.[jweDecrypt])\n .then(validateOptionalAudience.bind(undefined, client.client_id))\n .then(validateOptionalIssuer.bind(undefined, as));\n jwtRefs.set(response, jwt);\n json = claims;\n }\n else {\n if (client.userinfo_signed_response_alg) {\n throw OPE('JWT UserInfo Response expected', JWT_USERINFO_EXPECTED, response);\n }\n json = await getResponseJsonBody(response);\n }\n assertString(json.sub, '\"response\" body \"sub\" property', INVALID_RESPONSE, { body: json });\n switch (expectedSubject) {\n case skipSubjectCheck:\n break;\n default:\n assertString(expectedSubject, '\"expectedSubject\"');\n if (json.sub !== expectedSubject) {\n throw OPE('unexpected \"response\" body \"sub\" property value', JSON_ATTRIBUTE_COMPARISON, {\n expected: expectedSubject,\n body: json,\n attribute: 'sub',\n });\n }\n }\n return json;\n}\nasync function authenticatedRequest(as, client, clientAuthentication, url, body, headers, options) {\n await clientAuthentication(as, client, body, headers);\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n return (options?.[customFetch] || fetch)(url.href, {\n body,\n headers: Object.fromEntries(headers.entries()),\n method: 'POST',\n redirect: 'manual',\n signal: options?.signal ? signal(options.signal) : undefined,\n });\n}\nasync function tokenEndpointRequest(as, client, clientAuthentication, grantType, parameters, options) {\n const url = resolveEndpoint(as, 'token_endpoint', client.use_mtls_endpoint_aliases, options?.[allowInsecureRequests] !== true);\n parameters.set('grant_type', grantType);\n const headers = prepareHeaders(options?.headers);\n headers.set('accept', 'application/json');\n if (options?.DPoP !== undefined) {\n assertDPoP(options.DPoP);\n await options.DPoP.addProof(url, headers, 'POST');\n }\n const response = await authenticatedRequest(as, client, clientAuthentication, url, parameters, headers, options);\n options?.DPoP?.cacheNonce(response);\n return response;\n}\nexport async function refreshTokenGrantRequest(as, client, clientAuthentication, refreshToken, options) {\n assertAs(as);\n assertClient(client);\n assertString(refreshToken, '\"refreshToken\"');\n const parameters = new URLSearchParams(options?.additionalParameters);\n parameters.set('refresh_token', refreshToken);\n return tokenEndpointRequest(as, client, clientAuthentication, 'refresh_token', parameters, options);\n}\nconst idTokenClaims = new WeakMap();\nconst jwtRefs = new WeakMap();\nexport function getValidatedIdTokenClaims(ref) {\n if (!ref.id_token) {\n return undefined;\n }\n const claims = idTokenClaims.get(ref);\n if (!claims) {\n throw CodedTypeError('\"ref\" was already garbage collected or did not resolve from the proper sources', ERR_INVALID_ARG_VALUE);\n }\n return claims;\n}\nexport async function validateApplicationLevelSignature(as, ref, options) {\n assertAs(as);\n if (!jwtRefs.has(ref)) {\n throw CodedTypeError('\"ref\" does not contain a processed JWT Response to verify the signature of', ERR_INVALID_ARG_VALUE);\n }\n const { 0: protectedHeader, 1: payload, 2: encodedSignature } = jwtRefs.get(ref).split('.');\n const header = JSON.parse(buf(b64u(protectedHeader)));\n if (header.alg.startsWith('HS')) {\n throw new UnsupportedOperationError('unsupported JWS algorithm', { cause: { alg: header.alg } });\n }\n let key;\n key = await getPublicSigKeyFromIssuerJwksUri(as, options, header);\n await validateJwsSignature(protectedHeader, payload, key, b64u(encodedSignature));\n}\nasync function processGenericAccessTokenResponse(as, client, response, additionalRequiredIdTokenClaims, options) {\n assertAs(as);\n assertClient(client);\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n checkAuthenticationChallenges(response);\n await checkOAuthBodyError(response, 200, 'Token Endpoint');\n assertReadableResponse(response);\n const json = await getResponseJsonBody(response);\n assertString(json.access_token, '\"response\" body \"access_token\" property', INVALID_RESPONSE, {\n body: json,\n });\n assertString(json.token_type, '\"response\" body \"token_type\" property', INVALID_RESPONSE, {\n body: json,\n });\n json.token_type = json.token_type.toLowerCase();\n if (json.token_type !== 'dpop' && json.token_type !== 'bearer') {\n throw new UnsupportedOperationError('unsupported `token_type` value', { cause: { body: json } });\n }\n if (json.expires_in !== undefined) {\n let expiresIn = typeof json.expires_in !== 'number' ? parseFloat(json.expires_in) : json.expires_in;\n assertNumber(expiresIn, false, '\"response\" body \"expires_in\" property', INVALID_RESPONSE, {\n body: json,\n });\n json.expires_in = expiresIn;\n }\n if (json.refresh_token !== undefined) {\n assertString(json.refresh_token, '\"response\" body \"refresh_token\" property', INVALID_RESPONSE, {\n body: json,\n });\n }\n if (json.scope !== undefined && typeof json.scope !== 'string') {\n throw OPE('\"response\" body \"scope\" property must be a string', INVALID_RESPONSE, { body: json });\n }\n if (json.id_token !== undefined) {\n assertString(json.id_token, '\"response\" body \"id_token\" property', INVALID_RESPONSE, {\n body: json,\n });\n const requiredClaims = ['aud', 'exp', 'iat', 'iss', 'sub'];\n if (client.require_auth_time === true) {\n requiredClaims.push('auth_time');\n }\n if (client.default_max_age !== undefined) {\n assertNumber(client.default_max_age, false, '\"client.default_max_age\"');\n requiredClaims.push('auth_time');\n }\n if (additionalRequiredIdTokenClaims?.length) {\n requiredClaims.push(...additionalRequiredIdTokenClaims);\n }\n const { claims, jwt } = await validateJwt(json.id_token, checkSigningAlgorithm.bind(undefined, client.id_token_signed_response_alg, as.id_token_signing_alg_values_supported, 'RS256'), getClockSkew(client), getClockTolerance(client), options?.[jweDecrypt])\n .then(validatePresence.bind(undefined, requiredClaims))\n .then(validateIssuer.bind(undefined, as))\n .then(validateAudience.bind(undefined, client.client_id));\n if (Array.isArray(claims.aud) && claims.aud.length !== 1) {\n if (claims.azp === undefined) {\n throw OPE('ID Token \"aud\" (audience) claim includes additional untrusted audiences', JWT_CLAIM_COMPARISON, { claims, claim: 'aud' });\n }\n if (claims.azp !== client.client_id) {\n throw OPE('unexpected ID Token \"azp\" (authorized party) claim value', JWT_CLAIM_COMPARISON, { expected: client.client_id, claims, claim: 'azp' });\n }\n }\n if (claims.auth_time !== undefined) {\n assertNumber(claims.auth_time, false, 'ID Token \"auth_time\" (authentication time)', INVALID_RESPONSE, { claims });\n }\n jwtRefs.set(response, jwt);\n idTokenClaims.set(json, claims);\n }\n return json;\n}\nfunction checkAuthenticationChallenges(response) {\n let challenges;\n if ((challenges = parseWwwAuthenticateChallenges(response))) {\n throw new WWWAuthenticateChallengeError('server responded with a challenge in the WWW-Authenticate HTTP Header', { cause: challenges, response });\n }\n}\nexport async function processRefreshTokenResponse(as, client, response, options) {\n return processGenericAccessTokenResponse(as, client, response, undefined, options);\n}\nfunction validateOptionalAudience(expected, result) {\n if (result.claims.aud !== undefined) {\n return validateAudience(expected, result);\n }\n return result;\n}\nfunction validateAudience(expected, result) {\n if (Array.isArray(result.claims.aud)) {\n if (!result.claims.aud.includes(expected)) {\n throw OPE('unexpected JWT \"aud\" (audience) claim value', JWT_CLAIM_COMPARISON, {\n expected,\n claims: result.claims,\n claim: 'aud',\n });\n }\n }\n else if (result.claims.aud !== expected) {\n throw OPE('unexpected JWT \"aud\" (audience) claim value', JWT_CLAIM_COMPARISON, {\n expected,\n claims: result.claims,\n claim: 'aud',\n });\n }\n return result;\n}\nfunction validateOptionalIssuer(as, result) {\n if (result.claims.iss !== undefined) {\n return validateIssuer(as, result);\n }\n return result;\n}\nfunction validateIssuer(as, result) {\n const expected = as[_expectedIssuer]?.(result) ?? as.issuer;\n if (result.claims.iss !== expected) {\n throw OPE('unexpected JWT \"iss\" (issuer) claim value', JWT_CLAIM_COMPARISON, {\n expected,\n claims: result.claims,\n claim: 'iss',\n });\n }\n return result;\n}\nconst branded = new WeakSet();\nfunction brand(searchParams) {\n branded.add(searchParams);\n return searchParams;\n}\nexport async function authorizationCodeGrantRequest(as, client, clientAuthentication, callbackParameters, redirectUri, codeVerifier, options) {\n assertAs(as);\n assertClient(client);\n if (!branded.has(callbackParameters)) {\n throw CodedTypeError('\"callbackParameters\" must be an instance of URLSearchParams obtained from \"validateAuthResponse()\", or \"validateJwtAuthResponse()', ERR_INVALID_ARG_VALUE);\n }\n assertString(redirectUri, '\"redirectUri\"');\n const code = getURLSearchParameter(callbackParameters, 'code');\n if (!code) {\n throw OPE('no authorization code in \"callbackParameters\"', INVALID_RESPONSE);\n }\n const parameters = new URLSearchParams(options?.additionalParameters);\n parameters.set('redirect_uri', redirectUri);\n parameters.set('code', code);\n if (codeVerifier !== _nopkce) {\n assertString(codeVerifier, '\"codeVerifier\"');\n parameters.set('code_verifier', codeVerifier);\n }\n return tokenEndpointRequest(as, client, clientAuthentication, 'authorization_code', parameters, options);\n}\nconst jwtClaimNames = {\n aud: 'audience',\n c_hash: 'code hash',\n client_id: 'client id',\n exp: 'expiration time',\n iat: 'issued at',\n iss: 'issuer',\n jti: 'jwt id',\n nonce: 'nonce',\n s_hash: 'state hash',\n sub: 'subject',\n ath: 'access token hash',\n htm: 'http method',\n htu: 'http uri',\n cnf: 'confirmation',\n auth_time: 'authentication time',\n};\nfunction validatePresence(required, result) {\n for (const claim of required) {\n if (result.claims[claim] === undefined) {\n throw OPE(`JWT \"${claim}\" (${jwtClaimNames[claim]}) claim missing`, INVALID_RESPONSE, {\n claims: result.claims,\n });\n }\n }\n return result;\n}\nexport const expectNoNonce = Symbol();\nexport const skipAuthTimeCheck = Symbol();\nexport async function processAuthorizationCodeResponse(as, client, response, options) {\n if (typeof options?.expectedNonce === 'string' ||\n typeof options?.maxAge === 'number' ||\n options?.requireIdToken) {\n return processAuthorizationCodeOpenIDResponse(as, client, response, options.expectedNonce, options.maxAge, {\n [jweDecrypt]: options[jweDecrypt],\n });\n }\n return processAuthorizationCodeOAuth2Response(as, client, response, options);\n}\nasync function processAuthorizationCodeOpenIDResponse(as, client, response, expectedNonce, maxAge, options) {\n const additionalRequiredClaims = [];\n switch (expectedNonce) {\n case undefined:\n expectedNonce = expectNoNonce;\n break;\n case expectNoNonce:\n break;\n default:\n assertString(expectedNonce, '\"expectedNonce\" argument');\n additionalRequiredClaims.push('nonce');\n }\n maxAge ??= client.default_max_age;\n switch (maxAge) {\n case undefined:\n maxAge = skipAuthTimeCheck;\n break;\n case skipAuthTimeCheck:\n break;\n default:\n assertNumber(maxAge, false, '\"maxAge\" argument');\n additionalRequiredClaims.push('auth_time');\n }\n const result = await processGenericAccessTokenResponse(as, client, response, additionalRequiredClaims, options);\n assertString(result.id_token, '\"response\" body \"id_token\" property', INVALID_RESPONSE, {\n body: result,\n });\n const claims = getValidatedIdTokenClaims(result);\n if (maxAge !== skipAuthTimeCheck) {\n const now = epochTime() + getClockSkew(client);\n const tolerance = getClockTolerance(client);\n if (claims.auth_time + maxAge < now - tolerance) {\n throw OPE('too much time has elapsed since the last End-User authentication', JWT_TIMESTAMP_CHECK, { claims, now, tolerance, claim: 'auth_time' });\n }\n }\n if (expectedNonce === expectNoNonce) {\n if (claims.nonce !== undefined) {\n throw OPE('unexpected ID Token \"nonce\" claim value', JWT_CLAIM_COMPARISON, {\n expected: undefined,\n claims,\n claim: 'nonce',\n });\n }\n }\n else if (claims.nonce !== expectedNonce) {\n throw OPE('unexpected ID Token \"nonce\" claim value', JWT_CLAIM_COMPARISON, {\n expected: expectedNonce,\n claims,\n claim: 'nonce',\n });\n }\n return result;\n}\nasync function processAuthorizationCodeOAuth2Response(as, client, response, options) {\n const result = await processGenericAccessTokenResponse(as, client, response, undefined, options);\n const claims = getValidatedIdTokenClaims(result);\n if (claims) {\n if (client.default_max_age !== undefined) {\n assertNumber(client.default_max_age, false, '\"client.default_max_age\"');\n const now = epochTime() + getClockSkew(client);\n const tolerance = getClockTolerance(client);\n if (claims.auth_time + client.default_max_age < now - tolerance) {\n throw OPE('too much time has elapsed since the last End-User authentication', JWT_TIMESTAMP_CHECK, { claims, now, tolerance, claim: 'auth_time' });\n }\n }\n if (claims.nonce !== undefined) {\n throw OPE('unexpected ID Token \"nonce\" claim value', JWT_CLAIM_COMPARISON, {\n expected: undefined,\n claims,\n claim: 'nonce',\n });\n }\n }\n return result;\n}\nexport const WWW_AUTHENTICATE_CHALLENGE = 'OAUTH_WWW_AUTHENTICATE_CHALLENGE';\nexport const RESPONSE_BODY_ERROR = 'OAUTH_RESPONSE_BODY_ERROR';\nexport const UNSUPPORTED_OPERATION = 'OAUTH_UNSUPPORTED_OPERATION';\nexport const AUTHORIZATION_RESPONSE_ERROR = 'OAUTH_AUTHORIZATION_RESPONSE_ERROR';\nexport const JWT_USERINFO_EXPECTED = 'OAUTH_JWT_USERINFO_EXPECTED';\nexport const PARSE_ERROR = 'OAUTH_PARSE_ERROR';\nexport const INVALID_RESPONSE = 'OAUTH_INVALID_RESPONSE';\nexport const INVALID_REQUEST = 'OAUTH_INVALID_REQUEST';\nexport const RESPONSE_IS_NOT_JSON = 'OAUTH_RESPONSE_IS_NOT_JSON';\nexport const RESPONSE_IS_NOT_CONFORM = 'OAUTH_RESPONSE_IS_NOT_CONFORM';\nexport const HTTP_REQUEST_FORBIDDEN = 'OAUTH_HTTP_REQUEST_FORBIDDEN';\nexport const REQUEST_PROTOCOL_FORBIDDEN = 'OAUTH_REQUEST_PROTOCOL_FORBIDDEN';\nexport const JWT_TIMESTAMP_CHECK = 'OAUTH_JWT_TIMESTAMP_CHECK_FAILED';\nexport const JWT_CLAIM_COMPARISON = 'OAUTH_JWT_CLAIM_COMPARISON_FAILED';\nexport const JSON_ATTRIBUTE_COMPARISON = 'OAUTH_JSON_ATTRIBUTE_COMPARISON_FAILED';\nexport const KEY_SELECTION = 'OAUTH_KEY_SELECTION_FAILED';\nexport const MISSING_SERVER_METADATA = 'OAUTH_MISSING_SERVER_METADATA';\nexport const INVALID_SERVER_METADATA = 'OAUTH_INVALID_SERVER_METADATA';\nfunction checkJwtType(expected, result) {\n if (typeof result.header.typ !== 'string' || normalizeTyp(result.header.typ) !== expected) {\n throw OPE('unexpected JWT \"typ\" header parameter value', INVALID_RESPONSE, {\n header: result.header,\n });\n }\n return result;\n}\nexport async function clientCredentialsGrantRequest(as, client, clientAuthentication, parameters, options) {\n assertAs(as);\n assertClient(client);\n return tokenEndpointRequest(as, client, clientAuthentication, 'client_credentials', new URLSearchParams(parameters), options);\n}\nexport async function genericTokenEndpointRequest(as, client, clientAuthentication, grantType, parameters, options) {\n assertAs(as);\n assertClient(client);\n assertString(grantType, '\"grantType\"');\n return tokenEndpointRequest(as, client, clientAuthentication, grantType, new URLSearchParams(parameters), options);\n}\nexport async function processGenericTokenEndpointResponse(as, client, response, options) {\n return processGenericAccessTokenResponse(as, client, response, undefined, options);\n}\nexport async function processClientCredentialsResponse(as, client, response, options) {\n return processGenericAccessTokenResponse(as, client, response, undefined, options);\n}\nexport async function revocationRequest(as, client, clientAuthentication, token, options) {\n assertAs(as);\n assertClient(client);\n assertString(token, '\"token\"');\n const url = resolveEndpoint(as, 'revocation_endpoint', client.use_mtls_endpoint_aliases, options?.[allowInsecureRequests] !== true);\n const body = new URLSearchParams(options?.additionalParameters);\n body.set('token', token);\n const headers = prepareHeaders(options?.headers);\n headers.delete('accept');\n return authenticatedRequest(as, client, clientAuthentication, url, body, headers, options);\n}\nexport async function processRevocationResponse(response) {\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n checkAuthenticationChallenges(response);\n await checkOAuthBodyError(response, 200, 'Revocation Endpoint');\n return undefined;\n}\nfunction assertReadableResponse(response) {\n if (response.bodyUsed) {\n throw CodedTypeError('\"response\" body has been used already', ERR_INVALID_ARG_VALUE);\n }\n}\nexport async function introspectionRequest(as, client, clientAuthentication, token, options) {\n assertAs(as);\n assertClient(client);\n assertString(token, '\"token\"');\n const url = resolveEndpoint(as, 'introspection_endpoint', client.use_mtls_endpoint_aliases, options?.[allowInsecureRequests] !== true);\n const body = new URLSearchParams(options?.additionalParameters);\n body.set('token', token);\n const headers = prepareHeaders(options?.headers);\n if (options?.requestJwtResponse ?? client.introspection_signed_response_alg) {\n headers.set('accept', 'application/token-introspection+jwt');\n }\n else {\n headers.set('accept', 'application/json');\n }\n return authenticatedRequest(as, client, clientAuthentication, url, body, headers, options);\n}\nexport async function processIntrospectionResponse(as, client, response, options) {\n assertAs(as);\n assertClient(client);\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n checkAuthenticationChallenges(response);\n await checkOAuthBodyError(response, 200, 'Introspection Endpoint');\n let json;\n if (getContentType(response) === 'application/token-introspection+jwt') {\n assertReadableResponse(response);\n const { claims, jwt } = await validateJwt(await response.text(), checkSigningAlgorithm.bind(undefined, client.introspection_signed_response_alg, as.introspection_signing_alg_values_supported, 'RS256'), getClockSkew(client), getClockTolerance(client), options?.[jweDecrypt])\n .then(checkJwtType.bind(undefined, 'token-introspection+jwt'))\n .then(validatePresence.bind(undefined, ['aud', 'iat', 'iss']))\n .then(validateIssuer.bind(undefined, as))\n .then(validateAudience.bind(undefined, client.client_id));\n jwtRefs.set(response, jwt);\n if (!isJsonObject(claims.token_introspection)) {\n throw OPE('JWT \"token_introspection\" claim must be a JSON object', INVALID_RESPONSE, {\n claims,\n });\n }\n json = claims.token_introspection;\n }\n else {\n assertReadableResponse(response);\n json = await getResponseJsonBody(response);\n }\n if (typeof json.active !== 'boolean') {\n throw OPE('\"response\" body \"active\" property must be a boolean', INVALID_RESPONSE, {\n body: json,\n });\n }\n return json;\n}\nasync function jwksRequest(as, options) {\n assertAs(as);\n const url = resolveEndpoint(as, 'jwks_uri', false, options?.[allowInsecureRequests] !== true);\n const headers = prepareHeaders(options?.headers);\n headers.set('accept', 'application/json');\n headers.append('accept', 'application/jwk-set+json');\n return (options?.[customFetch] || fetch)(url.href, {\n body: undefined,\n headers: Object.fromEntries(headers.entries()),\n method: 'GET',\n redirect: 'manual',\n signal: options?.signal ? signal(options.signal) : undefined,\n });\n}\nasync function processJwksResponse(response) {\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n if (response.status !== 200) {\n throw OPE('\"response\" is not a conform JSON Web Key Set response (unexpected HTTP status code)', RESPONSE_IS_NOT_CONFORM, response);\n }\n assertReadableResponse(response);\n const json = await getResponseJsonBody(response, (response) => assertContentTypes(response, 'application/json', 'application/jwk-set+json'));\n if (!Array.isArray(json.keys)) {\n throw OPE('\"response\" body \"keys\" property must be an array', INVALID_RESPONSE, { body: json });\n }\n if (!Array.prototype.every.call(json.keys, isJsonObject)) {\n throw OPE('\"response\" body \"keys\" property members must be JWK formatted objects', INVALID_RESPONSE, { body: json });\n }\n return json;\n}\nfunction supported(alg) {\n switch (alg) {\n case 'PS256':\n case 'ES256':\n case 'RS256':\n case 'PS384':\n case 'ES384':\n case 'RS384':\n case 'PS512':\n case 'ES512':\n case 'RS512':\n case 'Ed25519':\n case 'EdDSA':\n return true;\n default:\n return false;\n }\n}\nfunction checkSupportedJwsAlg(header) {\n if (!supported(header.alg)) {\n throw new UnsupportedOperationError('unsupported JWS \"alg\" identifier', {\n cause: { alg: header.alg },\n });\n }\n}\nfunction checkRsaKeyAlgorithm(key) {\n const { algorithm } = key;\n if (typeof algorithm.modulusLength !== 'number' || algorithm.modulusLength < 2048) {\n throw new UnsupportedOperationError(`unsupported ${algorithm.name} modulusLength`, {\n cause: key,\n });\n }\n}\nfunction ecdsaHashName(key) {\n const { algorithm } = key;\n switch (algorithm.namedCurve) {\n case 'P-256':\n return 'SHA-256';\n case 'P-384':\n return 'SHA-384';\n case 'P-521':\n return 'SHA-512';\n default:\n throw new UnsupportedOperationError('unsupported ECDSA namedCurve', { cause: key });\n }\n}\nfunction keyToSubtle(key) {\n switch (key.algorithm.name) {\n case 'ECDSA':\n return {\n name: key.algorithm.name,\n hash: ecdsaHashName(key),\n };\n case 'RSA-PSS': {\n checkRsaKeyAlgorithm(key);\n switch (key.algorithm.hash.name) {\n case 'SHA-256':\n case 'SHA-384':\n case 'SHA-512':\n return {\n name: key.algorithm.name,\n saltLength: parseInt(key.algorithm.hash.name.slice(-3), 10) >> 3,\n };\n default:\n throw new UnsupportedOperationError('unsupported RSA-PSS hash name', { cause: key });\n }\n }\n case 'RSASSA-PKCS1-v1_5':\n checkRsaKeyAlgorithm(key);\n return key.algorithm.name;\n case 'Ed25519':\n return key.algorithm.name;\n }\n throw new UnsupportedOperationError('unsupported CryptoKey algorithm name', { cause: key });\n}\nasync function validateJwsSignature(protectedHeader, payload, key, signature) {\n const data = buf(`${protectedHeader}.${payload}`);\n const algorithm = keyToSubtle(key);\n const verified = await crypto.subtle.verify(algorithm, key, signature, data);\n if (!verified) {\n throw OPE('JWT signature verification failed', INVALID_RESPONSE, {\n key,\n data,\n signature,\n algorithm,\n });\n }\n}\nasync function validateJwt(jws, checkAlg, clockSkew, clockTolerance, decryptJwt) {\n let { 0: protectedHeader, 1: payload, length } = jws.split('.');\n if (length === 5) {\n if (decryptJwt !== undefined) {\n jws = await decryptJwt(jws);\n ({ 0: protectedHeader, 1: payload, length } = jws.split('.'));\n }\n else {\n throw new UnsupportedOperationError('JWE decryption is not configured', { cause: jws });\n }\n }\n if (length !== 3) {\n throw OPE('Invalid JWT', INVALID_RESPONSE, jws);\n }\n let header;\n try {\n header = JSON.parse(buf(b64u(protectedHeader)));\n }\n catch (cause) {\n throw OPE('failed to parse JWT Header body as base64url encoded JSON', PARSE_ERROR, cause);\n }\n if (!isJsonObject(header)) {\n throw OPE('JWT Header must be a top level object', INVALID_RESPONSE, jws);\n }\n checkAlg(header);\n if (header.crit !== undefined) {\n throw new UnsupportedOperationError('no JWT \"crit\" header parameter extensions are supported', {\n cause: { header },\n });\n }\n let claims;\n try {\n claims = JSON.parse(buf(b64u(payload)));\n }\n catch (cause) {\n throw OPE('failed to parse JWT Payload body as base64url encoded JSON', PARSE_ERROR, cause);\n }\n if (!isJsonObject(claims)) {\n throw OPE('JWT Payload must be a top level object', INVALID_RESPONSE, jws);\n }\n const now = epochTime() + clockSkew;\n if (claims.exp !== undefined) {\n if (typeof claims.exp !== 'number') {\n throw OPE('unexpected JWT \"exp\" (expiration time) claim type', INVALID_RESPONSE, { claims });\n }\n if (claims.exp <= now - clockTolerance) {\n throw OPE('unexpected JWT \"exp\" (expiration time) claim value, expiration is past current timestamp', JWT_TIMESTAMP_CHECK, { claims, now, tolerance: clockTolerance, claim: 'exp' });\n }\n }\n if (claims.iat !== undefined) {\n if (typeof claims.iat !== 'number') {\n throw OPE('unexpected JWT \"iat\" (issued at) claim type', INVALID_RESPONSE, { claims });\n }\n }\n if (claims.iss !== undefined) {\n if (typeof claims.iss !== 'string') {\n throw OPE('unexpected JWT \"iss\" (issuer) claim type', INVALID_RESPONSE, { claims });\n }\n }\n if (claims.nbf !== undefined) {\n if (typeof claims.nbf !== 'number') {\n throw OPE('unexpected JWT \"nbf\" (not before) claim type', INVALID_RESPONSE, { claims });\n }\n if (claims.nbf > now + clockTolerance) {\n throw OPE('unexpected JWT \"nbf\" (not before) claim value', JWT_TIMESTAMP_CHECK, {\n claims,\n now,\n tolerance: clockTolerance,\n claim: 'nbf',\n });\n }\n }\n if (claims.aud !== undefined) {\n if (typeof claims.aud !== 'string' && !Array.isArray(claims.aud)) {\n throw OPE('unexpected JWT \"aud\" (audience) claim type', INVALID_RESPONSE, { claims });\n }\n }\n return { header, claims, jwt: jws };\n}\nexport async function validateJwtAuthResponse(as, client, parameters, expectedState, options) {\n assertAs(as);\n assertClient(client);\n if (parameters instanceof URL) {\n parameters = parameters.searchParams;\n }\n if (!(parameters instanceof URLSearchParams)) {\n throw CodedTypeError('\"parameters\" must be an instance of URLSearchParams, or URL', ERR_INVALID_ARG_TYPE);\n }\n const response = getURLSearchParameter(parameters, 'response');\n if (!response) {\n throw OPE('\"parameters\" does not contain a JARM response', INVALID_RESPONSE);\n }\n const { claims, header, jwt } = await validateJwt(response, checkSigningAlgorithm.bind(undefined, client.authorization_signed_response_alg, as.authorization_signing_alg_values_supported, 'RS256'), getClockSkew(client), getClockTolerance(client), options?.[jweDecrypt])\n .then(validatePresence.bind(undefined, ['aud', 'exp', 'iss']))\n .then(validateIssuer.bind(undefined, as))\n .then(validateAudience.bind(undefined, client.client_id));\n const { 0: protectedHeader, 1: payload, 2: encodedSignature } = jwt.split('.');\n const signature = b64u(encodedSignature);\n const key = await getPublicSigKeyFromIssuerJwksUri(as, options, header);\n await validateJwsSignature(protectedHeader, payload, key, signature);\n const result = new URLSearchParams();\n for (const [key, value] of Object.entries(claims)) {\n if (typeof value === 'string' && key !== 'aud') {\n result.set(key, value);\n }\n }\n return validateAuthResponse(as, client, result, expectedState);\n}\nasync function idTokenHash(data, header, claimName) {\n let algorithm;\n switch (header.alg) {\n case 'RS256':\n case 'PS256':\n case 'ES256':\n algorithm = 'SHA-256';\n break;\n case 'RS384':\n case 'PS384':\n case 'ES384':\n algorithm = 'SHA-384';\n break;\n case 'RS512':\n case 'PS512':\n case 'ES512':\n case 'Ed25519':\n case 'EdDSA':\n algorithm = 'SHA-512';\n break;\n default:\n throw new UnsupportedOperationError(`unsupported JWS algorithm for ${claimName} calculation`, { cause: { alg: header.alg } });\n }\n const digest = await crypto.subtle.digest(algorithm, buf(data));\n return b64u(digest.slice(0, digest.byteLength / 2));\n}\nasync function idTokenHashMatches(data, actual, header, claimName) {\n const expected = await idTokenHash(data, header, claimName);\n return actual === expected;\n}\nexport async function validateDetachedSignatureResponse(as, client, parameters, expectedNonce, expectedState, maxAge, options) {\n return validateHybridResponse(as, client, parameters, expectedNonce, expectedState, maxAge, options, true);\n}\nexport async function validateCodeIdTokenResponse(as, client, parameters, expectedNonce, expectedState, maxAge, options) {\n return validateHybridResponse(as, client, parameters, expectedNonce, expectedState, maxAge, options, false);\n}\nasync function consumeStream(request) {\n if (request.bodyUsed) {\n throw CodedTypeError('form_post Request instances must contain a readable body', ERR_INVALID_ARG_VALUE, { cause: request });\n }\n return request.text();\n}\nexport async function formPostResponse(request) {\n if (request.method !== 'POST') {\n throw CodedTypeError('form_post responses are expected to use the POST method', ERR_INVALID_ARG_VALUE, { cause: request });\n }\n if (getContentType(request) !== 'application/x-www-form-urlencoded') {\n throw CodedTypeError('form_post responses are expected to use the application/x-www-form-urlencoded content-type', ERR_INVALID_ARG_VALUE, { cause: request });\n }\n return consumeStream(request);\n}\nasync function validateHybridResponse(as, client, parameters, expectedNonce, expectedState, maxAge, options, fapi) {\n assertAs(as);\n assertClient(client);\n if (parameters instanceof URL) {\n if (!parameters.hash.length) {\n throw CodedTypeError('\"parameters\" as an instance of URL must contain a hash (fragment) with the Authorization Response parameters', ERR_INVALID_ARG_VALUE);\n }\n parameters = new URLSearchParams(parameters.hash.slice(1));\n }\n else if (looseInstanceOf(parameters, Request)) {\n parameters = new URLSearchParams(await formPostResponse(parameters));\n }\n else if (parameters instanceof URLSearchParams) {\n parameters = new URLSearchParams(parameters);\n }\n else {\n throw CodedTypeError('\"parameters\" must be an instance of URLSearchParams, URL, or Response', ERR_INVALID_ARG_TYPE);\n }\n const id_token = getURLSearchParameter(parameters, 'id_token');\n parameters.delete('id_token');\n switch (expectedState) {\n case undefined:\n case expectNoState:\n break;\n default:\n assertString(expectedState, '\"expectedState\" argument');\n }\n const result = validateAuthResponse({\n ...as,\n authorization_response_iss_parameter_supported: false,\n }, client, parameters, expectedState);\n if (!id_token) {\n throw OPE('\"parameters\" does not contain an ID Token', INVALID_RESPONSE);\n }\n const code = getURLSearchParameter(parameters, 'code');\n if (!code) {\n throw OPE('\"parameters\" does not contain an Authorization Code', INVALID_RESPONSE);\n }\n const requiredClaims = [\n 'aud',\n 'exp',\n 'iat',\n 'iss',\n 'sub',\n 'nonce',\n 'c_hash',\n ];\n const state = parameters.get('state');\n if (fapi && (typeof expectedState === 'string' || state !== null)) {\n requiredClaims.push('s_hash');\n }\n if (maxAge !== undefined) {\n assertNumber(maxAge, false, '\"maxAge\" argument');\n }\n else if (client.default_max_age !== undefined) {\n assertNumber(client.default_max_age, false, '\"client.default_max_age\"');\n }\n maxAge ??= client.default_max_age ?? skipAuthTimeCheck;\n if (client.require_auth_time || maxAge !== skipAuthTimeCheck) {\n requiredClaims.push('auth_time');\n }\n const { claims, header, jwt } = await validateJwt(id_token, checkSigningAlgorithm.bind(undefined, client.id_token_signed_response_alg, as.id_token_signing_alg_values_supported, 'RS256'), getClockSkew(client), getClockTolerance(client), options?.[jweDecrypt])\n .then(validatePresence.bind(undefined, requiredClaims))\n .then(validateIssuer.bind(undefined, as))\n .then(validateAudience.bind(undefined, client.client_id));\n const clockSkew = getClockSkew(client);\n const now = epochTime() + clockSkew;\n if (claims.iat < now - 3600) {\n throw OPE('unexpected JWT \"iat\" (issued at) claim value, it is too far in the past', JWT_TIMESTAMP_CHECK, { now, claims, claim: 'iat' });\n }\n assertString(claims.c_hash, 'ID Token \"c_hash\" (code hash) claim value', INVALID_RESPONSE, {\n claims,\n });\n if (claims.auth_time !== undefined) {\n assertNumber(claims.auth_time, false, 'ID Token \"auth_time\" (authentication time)', INVALID_RESPONSE, { claims });\n }\n if (maxAge !== skipAuthTimeCheck) {\n const now = epochTime() + getClockSkew(client);\n const tolerance = getClockTolerance(client);\n if (claims.auth_time + maxAge < now - tolerance) {\n throw OPE('too much time has elapsed since the last End-User authentication', JWT_TIMESTAMP_CHECK, { claims, now, tolerance, claim: 'auth_time' });\n }\n }\n assertString(expectedNonce, '\"expectedNonce\" argument');\n if (claims.nonce !== expectedNonce) {\n throw OPE('unexpected ID Token \"nonce\" claim value', JWT_CLAIM_COMPARISON, {\n expected: expectedNonce,\n claims,\n claim: 'nonce',\n });\n }\n if (Array.isArray(claims.aud) && claims.aud.length !== 1) {\n if (claims.azp === undefined) {\n throw OPE('ID Token \"aud\" (audience) claim includes additional untrusted audiences', JWT_CLAIM_COMPARISON, { claims, claim: 'aud' });\n }\n if (claims.azp !== client.client_id) {\n throw OPE('unexpected ID Token \"azp\" (authorized party) claim value', JWT_CLAIM_COMPARISON, {\n expected: client.client_id,\n claims,\n claim: 'azp',\n });\n }\n }\n const { 0: protectedHeader, 1: payload, 2: encodedSignature } = jwt.split('.');\n const signature = b64u(encodedSignature);\n const key = await getPublicSigKeyFromIssuerJwksUri(as, options, header);\n await validateJwsSignature(protectedHeader, payload, key, signature);\n if ((await idTokenHashMatches(code, claims.c_hash, header, 'c_hash')) !== true) {\n throw OPE('invalid ID Token \"c_hash\" (code hash) claim value', JWT_CLAIM_COMPARISON, {\n code,\n alg: header.alg,\n claim: 'c_hash',\n claims,\n });\n }\n if ((fapi && state !== null) || claims.s_hash !== undefined) {\n assertString(claims.s_hash, 'ID Token \"s_hash\" (state hash) claim value', INVALID_RESPONSE, {\n claims,\n });\n assertString(state, '\"state\" response parameter', INVALID_RESPONSE, { parameters });\n if ((await idTokenHashMatches(state, claims.s_hash, header, 's_hash')) !== true) {\n throw OPE('invalid ID Token \"s_hash\" (state hash) claim value', JWT_CLAIM_COMPARISON, {\n state,\n alg: header.alg,\n claim: 's_hash',\n claims,\n });\n }\n }\n return result;\n}\nfunction checkSigningAlgorithm(client, issuer, fallback, header) {\n if (client !== undefined) {\n if (typeof client === 'string' ? header.alg !== client : !client.includes(header.alg)) {\n throw OPE('unexpected JWT \"alg\" header parameter', INVALID_RESPONSE, {\n header,\n expected: client,\n reason: 'client configuration',\n });\n }\n return;\n }\n if (Array.isArray(issuer)) {\n if (!issuer.includes(header.alg)) {\n throw OPE('unexpected JWT \"alg\" header parameter', INVALID_RESPONSE, {\n header,\n expected: issuer,\n reason: 'authorization server metadata',\n });\n }\n return;\n }\n if (fallback !== undefined) {\n if (typeof fallback === 'string'\n ? header.alg !== fallback\n : typeof fallback === 'function'\n ? !fallback(header.alg)\n : !fallback.includes(header.alg)) {\n throw OPE('unexpected JWT \"alg\" header parameter', INVALID_RESPONSE, {\n header,\n expected: fallback,\n reason: 'default value',\n });\n }\n return;\n }\n throw OPE('missing client or server configuration to verify used JWT \"alg\" header parameter', undefined, { client, issuer, fallback });\n}\nfunction getURLSearchParameter(parameters, name) {\n const { 0: value, length } = parameters.getAll(name);\n if (length > 1) {\n throw OPE(`\"${name}\" parameter must be provided only once`, INVALID_RESPONSE);\n }\n return value;\n}\nexport const skipStateCheck = Symbol();\nexport const expectNoState = Symbol();\nexport function validateAuthResponse(as, client, parameters, expectedState) {\n assertAs(as);\n assertClient(client);\n if (parameters instanceof URL) {\n parameters = parameters.searchParams;\n }\n if (!(parameters instanceof URLSearchParams)) {\n throw CodedTypeError('\"parameters\" must be an instance of URLSearchParams, or URL', ERR_INVALID_ARG_TYPE);\n }\n if (getURLSearchParameter(parameters, 'response')) {\n throw OPE('\"parameters\" contains a JARM response, use validateJwtAuthResponse() instead of validateAuthResponse()', INVALID_RESPONSE, { parameters });\n }\n const iss = getURLSearchParameter(parameters, 'iss');\n const state = getURLSearchParameter(parameters, 'state');\n if (!iss && as.authorization_response_iss_parameter_supported) {\n throw OPE('response parameter \"iss\" (issuer) missing', INVALID_RESPONSE, { parameters });\n }\n if (iss && iss !== as.issuer) {\n throw OPE('unexpected \"iss\" (issuer) response parameter value', INVALID_RESPONSE, {\n expected: as.issuer,\n parameters,\n });\n }\n switch (expectedState) {\n case undefined:\n case expectNoState:\n if (state !== undefined) {\n throw OPE('unexpected \"state\" response parameter encountered', INVALID_RESPONSE, {\n expected: undefined,\n parameters,\n });\n }\n break;\n case skipStateCheck:\n break;\n default:\n assertString(expectedState, '\"expectedState\" argument');\n if (state !== expectedState) {\n throw OPE(state === undefined\n ? 'response parameter \"state\" missing'\n : 'unexpected \"state\" response parameter value', INVALID_RESPONSE, { expected: expectedState, parameters });\n }\n }\n const error = getURLSearchParameter(parameters, 'error');\n if (error) {\n throw new AuthorizationResponseError('authorization response from the server is an error', {\n cause: parameters,\n });\n }\n const id_token = getURLSearchParameter(parameters, 'id_token');\n const token = getURLSearchParameter(parameters, 'token');\n if (id_token !== undefined || token !== undefined) {\n throw new UnsupportedOperationError('implicit and hybrid flows are not supported');\n }\n return brand(new URLSearchParams(parameters));\n}\nfunction algToSubtle(alg) {\n switch (alg) {\n case 'PS256':\n case 'PS384':\n case 'PS512':\n return { name: 'RSA-PSS', hash: `SHA-${alg.slice(-3)}` };\n case 'RS256':\n case 'RS384':\n case 'RS512':\n return { name: 'RSASSA-PKCS1-v1_5', hash: `SHA-${alg.slice(-3)}` };\n case 'ES256':\n case 'ES384':\n return { name: 'ECDSA', namedCurve: `P-${alg.slice(-3)}` };\n case 'ES512':\n return { name: 'ECDSA', namedCurve: 'P-521' };\n case 'Ed25519':\n case 'EdDSA':\n return 'Ed25519';\n default:\n throw new UnsupportedOperationError('unsupported JWS algorithm', { cause: { alg } });\n }\n}\nasync function importJwk(alg, jwk) {\n const { ext, key_ops, use, ...key } = jwk;\n return crypto.subtle.importKey('jwk', key, algToSubtle(alg), true, ['verify']);\n}\nexport async function deviceAuthorizationRequest(as, client, clientAuthentication, parameters, options) {\n assertAs(as);\n assertClient(client);\n const url = resolveEndpoint(as, 'device_authorization_endpoint', client.use_mtls_endpoint_aliases, options?.[allowInsecureRequests] !== true);\n const body = new URLSearchParams(parameters);\n body.set('client_id', client.client_id);\n const headers = prepareHeaders(options?.headers);\n headers.set('accept', 'application/json');\n return authenticatedRequest(as, client, clientAuthentication, url, body, headers, options);\n}\nexport async function processDeviceAuthorizationResponse(as, client, response) {\n assertAs(as);\n assertClient(client);\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n checkAuthenticationChallenges(response);\n await checkOAuthBodyError(response, 200, 'Device Authorization Endpoint');\n assertReadableResponse(response);\n const json = await getResponseJsonBody(response);\n assertString(json.device_code, '\"response\" body \"device_code\" property', INVALID_RESPONSE, {\n body: json,\n });\n assertString(json.user_code, '\"response\" body \"user_code\" property', INVALID_RESPONSE, {\n body: json,\n });\n assertString(json.verification_uri, '\"response\" body \"verification_uri\" property', INVALID_RESPONSE, { body: json });\n let expiresIn = typeof json.expires_in !== 'number' ? parseFloat(json.expires_in) : json.expires_in;\n assertNumber(expiresIn, false, '\"response\" body \"expires_in\" property', INVALID_RESPONSE, {\n body: json,\n });\n json.expires_in = expiresIn;\n if (json.verification_uri_complete !== undefined) {\n assertString(json.verification_uri_complete, '\"response\" body \"verification_uri_complete\" property', INVALID_RESPONSE, { body: json });\n }\n if (json.interval !== undefined) {\n assertNumber(json.interval, false, '\"response\" body \"interval\" property', INVALID_RESPONSE, {\n body: json,\n });\n }\n return json;\n}\nexport async function deviceCodeGrantRequest(as, client, clientAuthentication, deviceCode, options) {\n assertAs(as);\n assertClient(client);\n assertString(deviceCode, '\"deviceCode\"');\n const parameters = new URLSearchParams(options?.additionalParameters);\n parameters.set('device_code', deviceCode);\n return tokenEndpointRequest(as, client, clientAuthentication, 'urn:ietf:params:oauth:grant-type:device_code', parameters, options);\n}\nexport async function processDeviceCodeResponse(as, client, response, options) {\n return processGenericAccessTokenResponse(as, client, response, undefined, options);\n}\nexport async function generateKeyPair(alg, options) {\n assertString(alg, '\"alg\"');\n const algorithm = algToSubtle(alg);\n if (alg.startsWith('PS') || alg.startsWith('RS')) {\n Object.assign(algorithm, {\n modulusLength: options?.modulusLength ?? 2048,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\n });\n }\n return crypto.subtle.generateKey(algorithm, options?.extractable ?? false, [\n 'sign',\n 'verify',\n ]);\n}\nfunction normalizeHtu(htu) {\n const url = new URL(htu);\n url.search = '';\n url.hash = '';\n return url.href;\n}\nasync function validateDPoP(request, accessToken, accessTokenClaims, options) {\n const headerValue = request.headers.get('dpop');\n if (headerValue === null) {\n throw OPE('operation indicated DPoP use but the request has no DPoP HTTP Header', INVALID_REQUEST, { headers: request.headers });\n }\n if (request.headers.get('authorization')?.toLowerCase().startsWith('dpop ') === false) {\n throw OPE(`operation indicated DPoP use but the request's Authorization HTTP Header scheme is not DPoP`, INVALID_REQUEST, { headers: request.headers });\n }\n if (typeof accessTokenClaims.cnf?.jkt !== 'string') {\n throw OPE('operation indicated DPoP use but the JWT Access Token has no jkt confirmation claim', INVALID_REQUEST, { claims: accessTokenClaims });\n }\n const clockSkew = getClockSkew(options);\n const proof = await validateJwt(headerValue, checkSigningAlgorithm.bind(undefined, options?.signingAlgorithms, undefined, supported), clockSkew, getClockTolerance(options), undefined)\n .then(checkJwtType.bind(undefined, 'dpop+jwt'))\n .then(validatePresence.bind(undefined, ['iat', 'jti', 'ath', 'htm', 'htu']));\n const now = epochTime() + clockSkew;\n const diff = Math.abs(now - proof.claims.iat);\n if (diff > 300) {\n throw OPE('DPoP Proof iat is not recent enough', JWT_TIMESTAMP_CHECK, {\n now,\n claims: proof.claims,\n claim: 'iat',\n });\n }\n if (proof.claims.htm !== request.method) {\n throw OPE('DPoP Proof htm mismatch', JWT_CLAIM_COMPARISON, {\n expected: request.method,\n claims: proof.claims,\n claim: 'htm',\n });\n }\n if (typeof proof.claims.htu !== 'string' ||\n normalizeHtu(proof.claims.htu) !== normalizeHtu(request.url)) {\n throw OPE('DPoP Proof htu mismatch', JWT_CLAIM_COMPARISON, {\n expected: normalizeHtu(request.url),\n claims: proof.claims,\n claim: 'htu',\n });\n }\n {\n const expected = b64u(await crypto.subtle.digest('SHA-256', buf(accessToken)));\n if (proof.claims.ath !== expected) {\n throw OPE('DPoP Proof ath mismatch', JWT_CLAIM_COMPARISON, {\n expected,\n claims: proof.claims,\n claim: 'ath',\n });\n }\n }\n {\n let components;\n switch (proof.header.jwk.kty) {\n case 'EC':\n components = {\n crv: proof.header.jwk.crv,\n kty: proof.header.jwk.kty,\n x: proof.header.jwk.x,\n y: proof.header.jwk.y,\n };\n break;\n case 'OKP':\n components = {\n crv: proof.header.jwk.crv,\n kty: proof.header.jwk.kty,\n x: proof.header.jwk.x,\n };\n break;\n case 'RSA':\n components = {\n e: proof.header.jwk.e,\n kty: proof.header.jwk.kty,\n n: proof.header.jwk.n,\n };\n break;\n default:\n throw new UnsupportedOperationError('unsupported JWK key type', { cause: proof.header.jwk });\n }\n const expected = b64u(await crypto.subtle.digest('SHA-256', buf(JSON.stringify(components))));\n if (accessTokenClaims.cnf.jkt !== expected) {\n throw OPE('JWT Access Token confirmation mismatch', JWT_CLAIM_COMPARISON, {\n expected,\n claims: accessTokenClaims,\n claim: 'cnf.jkt',\n });\n }\n }\n const { 0: protectedHeader, 1: payload, 2: encodedSignature } = headerValue.split('.');\n const signature = b64u(encodedSignature);\n const { jwk, alg } = proof.header;\n if (!jwk) {\n throw OPE('DPoP Proof is missing the jwk header parameter', INVALID_REQUEST, {\n header: proof.header,\n });\n }\n const key = await importJwk(alg, jwk);\n if (key.type !== 'public') {\n throw OPE('DPoP Proof jwk header parameter must contain a public key', INVALID_REQUEST, {\n header: proof.header,\n });\n }\n await validateJwsSignature(protectedHeader, payload, key, signature);\n}\nexport async function validateJwtAccessToken(as, request, expectedAudience, options) {\n assertAs(as);\n if (!looseInstanceOf(request, Request)) {\n throw CodedTypeError('\"request\" must be an instance of Request', ERR_INVALID_ARG_TYPE);\n }\n assertString(expectedAudience, '\"expectedAudience\"');\n const authorization = request.headers.get('authorization');\n if (authorization === null) {\n throw OPE('\"request\" is missing an Authorization HTTP Header', INVALID_REQUEST, {\n headers: request.headers,\n });\n }\n let { 0: scheme, 1: accessToken, length } = authorization.split(' ');\n scheme = scheme.toLowerCase();\n switch (scheme) {\n case 'dpop':\n case 'bearer':\n break;\n default:\n throw new UnsupportedOperationError('unsupported Authorization HTTP Header scheme', {\n cause: { headers: request.headers },\n });\n }\n if (length !== 2) {\n throw OPE('invalid Authorization HTTP Header format', INVALID_REQUEST, {\n headers: request.headers,\n });\n }\n const requiredClaims = [\n 'iss',\n 'exp',\n 'aud',\n 'sub',\n 'iat',\n 'jti',\n 'client_id',\n ];\n if (options?.requireDPoP || scheme === 'dpop' || request.headers.has('dpop')) {\n requiredClaims.push('cnf');\n }\n const { claims, header } = await validateJwt(accessToken, checkSigningAlgorithm.bind(undefined, options?.signingAlgorithms, undefined, supported), getClockSkew(options), getClockTolerance(options), undefined)\n .then(checkJwtType.bind(undefined, 'at+jwt'))\n .then(validatePresence.bind(undefined, requiredClaims))\n .then(validateIssuer.bind(undefined, as))\n .then(validateAudience.bind(undefined, expectedAudience))\n .catch(reassignRSCode);\n for (const claim of ['client_id', 'jti', 'sub']) {\n if (typeof claims[claim] !== 'string') {\n throw OPE(`unexpected JWT \"${claim}\" claim type`, INVALID_REQUEST, { claims });\n }\n }\n if ('cnf' in claims) {\n if (!isJsonObject(claims.cnf)) {\n throw OPE('unexpected JWT \"cnf\" (confirmation) claim value', INVALID_REQUEST, { claims });\n }\n const { 0: cnf, length } = Object.keys(claims.cnf);\n if (length) {\n if (length !== 1) {\n throw new UnsupportedOperationError('multiple confirmation claims are not supported', {\n cause: { claims },\n });\n }\n if (cnf !== 'jkt') {\n throw new UnsupportedOperationError('unsupported JWT Confirmation method', {\n cause: { claims },\n });\n }\n }\n }\n const { 0: protectedHeader, 1: payload, 2: encodedSignature } = accessToken.split('.');\n const signature = b64u(encodedSignature);\n const key = await getPublicSigKeyFromIssuerJwksUri(as, options, header);\n await validateJwsSignature(protectedHeader, payload, key, signature);\n if (options?.requireDPoP ||\n scheme === 'dpop' ||\n claims.cnf?.jkt !== undefined ||\n request.headers.has('dpop')) {\n await validateDPoP(request, accessToken, claims, options).catch(reassignRSCode);\n }\n return claims;\n}\nfunction reassignRSCode(err) {\n if (err instanceof OperationProcessingError && err?.code === INVALID_REQUEST) {\n err.code = INVALID_RESPONSE;\n }\n throw err;\n}\nexport async function backchannelAuthenticationRequest(as, client, clientAuthentication, parameters, options) {\n assertAs(as);\n assertClient(client);\n const url = resolveEndpoint(as, 'backchannel_authentication_endpoint', client.use_mtls_endpoint_aliases, options?.[allowInsecureRequests] !== true);\n const body = new URLSearchParams(parameters);\n body.set('client_id', client.client_id);\n const headers = prepareHeaders(options?.headers);\n headers.set('accept', 'application/json');\n return authenticatedRequest(as, client, clientAuthentication, url, body, headers, options);\n}\nexport async function processBackchannelAuthenticationResponse(as, client, response) {\n assertAs(as);\n assertClient(client);\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n checkAuthenticationChallenges(response);\n await checkOAuthBodyError(response, 200, 'Backchannel Authentication Endpoint');\n assertReadableResponse(response);\n const json = await getResponseJsonBody(response);\n assertString(json.auth_req_id, '\"response\" body \"auth_req_id\" property', INVALID_RESPONSE, {\n body: json,\n });\n let expiresIn = typeof json.expires_in !== 'number' ? parseFloat(json.expires_in) : json.expires_in;\n assertNumber(expiresIn, false, '\"response\" body \"expires_in\" property', INVALID_RESPONSE, {\n body: json,\n });\n json.expires_in = expiresIn;\n if (json.interval !== undefined) {\n assertNumber(json.interval, false, '\"response\" body \"interval\" property', INVALID_RESPONSE, {\n body: json,\n });\n }\n return json;\n}\nexport async function backchannelAuthenticationGrantRequest(as, client, clientAuthentication, authReqId, options) {\n assertAs(as);\n assertClient(client);\n assertString(authReqId, '\"authReqId\"');\n const parameters = new URLSearchParams(options?.additionalParameters);\n parameters.set('auth_req_id', authReqId);\n return tokenEndpointRequest(as, client, clientAuthentication, 'urn:openid:params:grant-type:ciba', parameters, options);\n}\nexport async function processBackchannelAuthenticationGrantResponse(as, client, response, options) {\n return processGenericAccessTokenResponse(as, client, response, undefined, options);\n}\nexport async function dynamicClientRegistrationRequest(as, metadata, options) {\n assertAs(as);\n const url = resolveEndpoint(as, 'registration_endpoint', metadata.use_mtls_endpoint_aliases, options?.[allowInsecureRequests] !== true);\n const headers = prepareHeaders(options?.headers);\n headers.set('accept', 'application/json');\n headers.set('content-type', 'application/json');\n const method = 'POST';\n if (options?.DPoP) {\n assertDPoP(options.DPoP);\n await options.DPoP.addProof(url, headers, method, options.initialAccessToken);\n }\n if (options?.initialAccessToken) {\n headers.set('authorization', `${headers.has('dpop') ? 'DPoP' : 'Bearer'} ${options.initialAccessToken}`);\n }\n const response = await (options?.[customFetch] || fetch)(url.href, {\n body: JSON.stringify(metadata),\n headers: Object.fromEntries(headers.entries()),\n method,\n redirect: 'manual',\n signal: options?.signal ? signal(options.signal) : undefined,\n });\n options?.DPoP?.cacheNonce(response);\n return response;\n}\nexport async function processDynamicClientRegistrationResponse(response) {\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n checkAuthenticationChallenges(response);\n await checkOAuthBodyError(response, 201, 'Dynamic Client Registration Endpoint');\n assertReadableResponse(response);\n const json = await getResponseJsonBody(response);\n assertString(json.client_id, '\"response\" body \"client_id\" property', INVALID_RESPONSE, {\n body: json,\n });\n if (json.client_secret !== undefined) {\n assertString(json.client_secret, '\"response\" body \"client_secret\" property', INVALID_RESPONSE, {\n body: json,\n });\n }\n if (json.client_secret) {\n assertNumber(json.client_secret_expires_at, true, '\"response\" body \"client_secret_expires_at\" property', INVALID_RESPONSE, {\n body: json,\n });\n }\n return json;\n}\nexport async function resourceDiscoveryRequest(resourceIdentifier, options) {\n return performDiscovery(resourceIdentifier, 'resourceIdentifier', (url) => {\n prependWellKnown(url, '.well-known/oauth-protected-resource');\n return url;\n }, options);\n}\nexport async function processResourceDiscoveryResponse(expectedResourceIdentifier, response) {\n const expected = expectedResourceIdentifier;\n if (!(expected instanceof URL) && expected !== _nodiscoverycheck) {\n throw CodedTypeError('\"expectedResourceIdentifier\" must be an instance of URL', ERR_INVALID_ARG_TYPE);\n }\n if (!looseInstanceOf(response, Response)) {\n throw CodedTypeError('\"response\" must be an instance of Response', ERR_INVALID_ARG_TYPE);\n }\n if (response.status !== 200) {\n throw OPE('\"response\" is not a conform Resource Server Metadata response (unexpected HTTP status code)', RESPONSE_IS_NOT_CONFORM, response);\n }\n assertReadableResponse(response);\n const json = await getResponseJsonBody(response);\n assertString(json.resource, '\"response\" body \"resource\" property', INVALID_RESPONSE, {\n body: json,\n });\n if (expected !== _nodiscoverycheck && new URL(json.resource).href !== expected.href) {\n throw OPE('\"response\" body \"resource\" property does not match the expected value', JSON_ATTRIBUTE_COMPARISON, { expected: expected.href, body: json, attribute: 'resource' });\n }\n return json;\n}\nasync function getResponseJsonBody(response, check = assertApplicationJson) {\n let json;\n try {\n json = await response.json();\n }\n catch (cause) {\n check(response);\n throw OPE('failed to parse \"response\" body as JSON', PARSE_ERROR, cause);\n }\n if (!isJsonObject(json)) {\n throw OPE('\"response\" body must be a top level object', INVALID_RESPONSE, { body: json });\n }\n return json;\n}\nexport const _nopkce = Symbol();\nexport const _nodiscoverycheck = Symbol();\nexport const _expectedIssuer = Symbol();\n//# sourceMappingURL=index.js.map","import * as oauth from 'oauth4webapi';\nimport { compactDecrypt } from 'jose/jwe/compact/decrypt';\nimport { JOSEError } from 'jose/errors';\nlet headers;\nlet USER_AGENT;\nif (typeof navigator === 'undefined' || !navigator.userAgent?.startsWith?.('Mozilla/5.0 ')) {\n const NAME = 'openid-client';\n const VERSION = 'v6.5.0';\n USER_AGENT = `${NAME}/${VERSION}`;\n headers = { 'user-agent': USER_AGENT };\n}\nconst int = (config) => {\n return props.get(config);\n};\nlet props;\nexport { AuthorizationResponseError, ResponseBodyError, WWWAuthenticateChallengeError, } from 'oauth4webapi';\nlet tbi;\nexport function ClientSecretPost(clientSecret) {\n if (clientSecret !== undefined) {\n return oauth.ClientSecretPost(clientSecret);\n }\n tbi ||= new WeakMap();\n return (as, client, body, headers) => {\n let auth;\n if (!(auth = tbi.get(client))) {\n assertString(client.client_secret, '\"metadata.client_secret\"');\n auth = oauth.ClientSecretPost(client.client_secret);\n tbi.set(client, auth);\n }\n return auth(as, client, body, headers);\n };\n}\nfunction assertString(input, it) {\n if (typeof input !== 'string') {\n throw CodedTypeError(`${it} must be a string`, ERR_INVALID_ARG_TYPE);\n }\n if (input.length === 0) {\n throw CodedTypeError(`${it} must not be empty`, ERR_INVALID_ARG_VALUE);\n }\n}\nexport function ClientSecretBasic(clientSecret) {\n if (clientSecret !== undefined) {\n return oauth.ClientSecretBasic(clientSecret);\n }\n tbi ||= new WeakMap();\n return (as, client, body, headers) => {\n let auth;\n if (!(auth = tbi.get(client))) {\n assertString(client.client_secret, '\"metadata.client_secret\"');\n auth = oauth.ClientSecretBasic(client.client_secret);\n tbi.set(client, auth);\n }\n return auth(as, client, body, headers);\n };\n}\nexport function ClientSecretJwt(clientSecret, options) {\n if (clientSecret !== undefined) {\n return oauth.ClientSecretJwt(clientSecret, options);\n }\n tbi ||= new WeakMap();\n return (as, client, body, headers) => {\n let auth;\n if (!(auth = tbi.get(client))) {\n assertString(client.client_secret, '\"metadata.client_secret\"');\n auth = oauth.ClientSecretJwt(client.client_secret, options);\n tbi.set(client, auth);\n }\n return auth(as, client, body, headers);\n };\n}\nexport function None() {\n return oauth.None();\n}\nexport function PrivateKeyJwt(clientPrivateKey, options) {\n return oauth.PrivateKeyJwt(clientPrivateKey, options);\n}\nexport function TlsClientAuth() {\n return oauth.TlsClientAuth();\n}\nexport const skipStateCheck = oauth.skipStateCheck;\nexport const skipSubjectCheck = oauth.skipSubjectCheck;\nexport const customFetch = oauth.customFetch;\nexport const modifyAssertion = oauth.modifyAssertion;\nexport const clockSkew = oauth.clockSkew;\nexport const clockTolerance = oauth.clockTolerance;\nconst ERR_INVALID_ARG_VALUE = 'ERR_INVALID_ARG_VALUE';\nconst ERR_INVALID_ARG_TYPE = 'ERR_INVALID_ARG_TYPE';\nfunction CodedTypeError(message, code, cause) {\n const err = new TypeError(message, { cause });\n Object.assign(err, { code });\n return err;\n}\nexport function calculatePKCECodeChallenge(codeVerifier) {\n return oauth.calculatePKCECodeChallenge(codeVerifier);\n}\nexport function randomPKCECodeVerifier() {\n return oauth.generateRandomCodeVerifier();\n}\nexport function randomNonce() {\n return oauth.generateRandomNonce();\n}\nexport function randomState() {\n return oauth.generateRandomState();\n}\nexport class ClientError extends Error {\n code;\n constructor(message, options) {\n super(message, options);\n this.name = this.constructor.name;\n this.code = options?.code;\n Error.captureStackTrace?.(this, this.constructor);\n }\n}\nconst decoder = new TextDecoder();\nfunction e(msg, cause, code) {\n return new ClientError(msg, { cause, code });\n}\nfunction errorHandler(err) {\n if (err instanceof TypeError ||\n err instanceof ClientError ||\n err instanceof oauth.ResponseBodyError ||\n err instanceof oauth.AuthorizationResponseError ||\n err instanceof oauth.WWWAuthenticateChallengeError) {\n throw err;\n }\n if (err instanceof oauth.OperationProcessingError) {\n switch (err.code) {\n case oauth.HTTP_REQUEST_FORBIDDEN:\n throw e('only requests to HTTPS are allowed', err, err.code);\n case oauth.REQUEST_PROTOCOL_FORBIDDEN:\n throw e('only requests to HTTP or HTTPS are allowed', err, err.code);\n case oauth.RESPONSE_IS_NOT_CONFORM:\n throw e('unexpected HTTP response status code', err.cause, err.code);\n case oauth.RESPONSE_IS_NOT_JSON:\n throw e('unexpected response content-type', err.cause, err.code);\n case oauth.PARSE_ERROR:\n throw e('parsing error occured', err, err.code);\n case oauth.INVALID_RESPONSE:\n throw e('invalid response encountered', err, err.code);\n case oauth.JWT_CLAIM_COMPARISON:\n throw e('unexpected JWT claim value encountered', err, err.code);\n case oauth.JSON_ATTRIBUTE_COMPARISON:\n throw e('unexpected JSON attribute value encountered', err, err.code);\n case oauth.JWT_TIMESTAMP_CHECK:\n throw e('JWT timestamp claim value failed validation', err, err.code);\n default:\n throw e(err.message, err, err.code);\n }\n }\n if (err instanceof oauth.UnsupportedOperationError) {\n throw e('unsupported operation', err, err.code);\n }\n if (err instanceof DOMException) {\n switch (err.name) {\n case 'OperationError':\n throw e('runtime operation error', err, oauth.UNSUPPORTED_OPERATION);\n case 'NotSupportedError':\n throw e('runtime unsupported operation', err, oauth.UNSUPPORTED_OPERATION);\n case 'TimeoutError':\n throw e('operation timed out', err, 'OAUTH_TIMEOUT');\n case 'AbortError':\n throw e('operation aborted', err, 'OAUTH_ABORT');\n }\n }\n throw new ClientError('something went wrong', { cause: err });\n}\nexport function randomDPoPKeyPair(alg, options) {\n return oauth\n .generateKeyPair(alg ?? 'ES256', {\n extractable: options?.extractable,\n })\n .catch(errorHandler);\n}\nfunction handleEntraId(server, as, options) {\n if (server.origin === 'https://login.microsoftonline.com' &&\n (!options?.algorithm || options.algorithm === 'oidc')) {\n as[kEntraId] = true;\n return true;\n }\n return false;\n}\nfunction handleB2Clogin(server, options) {\n if (server.hostname.endsWith('.b2clogin.com') &&\n (!options?.algorithm || options.algorithm === 'oidc')) {\n return true;\n }\n return false;\n}\nexport async function dynamicClientRegistration(server, metadata, clientAuthentication, options) {\n let as;\n if (options?.flag === retry) {\n as = options.as;\n }\n else {\n as = await performDiscovery(server, options);\n }\n const clockSkew = metadata[oauth.clockSkew] ?? 0;\n const clockTolerance = metadata[oauth.clockTolerance] ?? 30;\n metadata = structuredClone(metadata);\n const timeout = options?.timeout ?? 30;\n const signal = AbortSignal.timeout(timeout * 1000);\n let registered;\n try {\n registered = await oauth\n .dynamicClientRegistrationRequest(as, metadata, {\n initialAccessToken: options?.initialAccessToken,\n DPoP: options?.DPoP,\n headers: new Headers(headers),\n [oauth.customFetch]: options?.[customFetch],\n [oauth.allowInsecureRequests]: options?.execute?.includes(allowInsecureRequests),\n signal,\n })\n .then(oauth.processDynamicClientRegistrationResponse);\n }\n catch (err) {\n if (retryable(err, options)) {\n return dynamicClientRegistration(server, metadata, clientAuthentication, {\n ...options,\n flag: retry,\n as,\n });\n }\n errorHandler(err);\n }\n registered[oauth.clockSkew] = clockSkew;\n registered[oauth.clockTolerance] = clockTolerance;\n const instance = new Configuration(as, registered.client_id, registered, clientAuthentication);\n let internals = int(instance);\n if (options?.[customFetch]) {\n internals.fetch = options[customFetch];\n }\n if (options?.timeout) {\n internals.timeout = options.timeout;\n }\n if (options?.execute) {\n for (const extension of options.execute) {\n extension(instance);\n }\n }\n return instance;\n}\nexport async function discovery(server, clientId, metadata, clientAuthentication, options) {\n const as = await performDiscovery(server, options);\n const instance = new Configuration(as, clientId, metadata, clientAuthentication);\n let internals = int(instance);\n if (options?.[customFetch]) {\n internals.fetch = options[customFetch];\n }\n if (options?.timeout) {\n internals.timeout = options.timeout;\n }\n if (options?.execute) {\n for (const extension of options.execute) {\n extension(instance);\n }\n }\n return instance;\n}\nasync function performDiscovery(server, options) {\n if (!(server instanceof URL)) {\n throw CodedTypeError('\"server\" must be an instance of URL', ERR_INVALID_ARG_TYPE);\n }\n const resolve = !server.href.includes('/.well-known/');\n const timeout = options?.timeout ?? 30;\n const signal = AbortSignal.timeout(timeout * 1000);\n const as = await (resolve\n ? oauth.discoveryRequest(server, {\n algorithm: options?.algorithm,\n [oauth.customFetch]: options?.[customFetch],\n [oauth.allowInsecureRequests]: options?.execute?.includes(allowInsecureRequests),\n signal,\n headers: new Headers(headers),\n })\n : (options?.[customFetch] || fetch)((() => {\n oauth.checkProtocol(server, options?.execute?.includes(allowInsecureRequests) ? false : true);\n return server.href;\n })(), {\n headers: Object.fromEntries(new Headers({ accept: 'application/json', ...headers }).entries()),\n body: undefined,\n method: 'GET',\n redirect: 'manual',\n signal,\n }))\n .then((response) => oauth.processDiscoveryResponse(oauth._nodiscoverycheck, response))\n .catch(errorHandler);\n if (resolve && new URL(as.issuer).href !== server.href) {\n handleEntraId(server, as, options) ||\n handleB2Clogin(server, options) ||\n (() => {\n throw new ClientError('discovered metadata issuer does not match the expected issuer', {\n code: oauth.JSON_ATTRIBUTE_COMPARISON,\n cause: {\n expected: server.href,\n body: as,\n attribute: 'issuer',\n },\n });\n })();\n }\n return as;\n}\nfunction isRsaOaep(input) {\n return input.name === 'RSA-OAEP';\n}\nfunction isEcdh(input) {\n return input.name === 'ECDH';\n}\nconst ecdhEs = 'ECDH-ES';\nconst ecdhEsA128Kw = 'ECDH-ES+A128KW';\nconst ecdhEsA192Kw = 'ECDH-ES+A192KW';\nconst ecdhEsA256Kw = 'ECDH-ES+A256KW';\nfunction checkEcdhAlg(algs, alg, pk) {\n switch (alg) {\n case undefined:\n algs.add(ecdhEs);\n algs.add(ecdhEsA128Kw);\n algs.add(ecdhEsA192Kw);\n algs.add(ecdhEsA256Kw);\n break;\n case ecdhEs:\n case ecdhEsA128Kw:\n case ecdhEsA192Kw:\n case ecdhEsA256Kw:\n algs.add(alg);\n break;\n default:\n throw CodedTypeError('invalid key alg', ERR_INVALID_ARG_VALUE, { pk });\n }\n}\nexport function enableDecryptingResponses(config, contentEncryptionAlgorithms = [\n 'A128GCM',\n 'A192GCM',\n 'A256GCM',\n 'A128CBC-HS256',\n 'A192CBC-HS384',\n 'A256CBC-HS512',\n], ...keys) {\n if (int(config).decrypt !== undefined) {\n throw new TypeError('enableDecryptingResponses can only be called on a given Configuration instance once');\n }\n if (keys.length === 0) {\n throw CodedTypeError('no keys were provided', ERR_INVALID_ARG_VALUE);\n }\n const algs = new Set();\n const normalized = [];\n for (const pk of keys) {\n let key;\n if ('key' in pk) {\n key = { key: pk.key };\n if (typeof pk.alg === 'string')\n key.alg = pk.alg;\n if (typeof pk.kid === 'string')\n key.kid = pk.kid;\n }\n else {\n key = { key: pk };\n }\n if (key.key.type !== 'private') {\n throw CodedTypeError('only private keys must be provided', ERR_INVALID_ARG_VALUE);\n }\n if (isRsaOaep(key.key.algorithm)) {\n switch (key.key.algorithm.hash.name) {\n case 'SHA-1':\n case 'SHA-256':\n case 'SHA-384':\n case 'SHA-512': {\n let alg = 'RSA-OAEP';\n let sha;\n if ((sha = parseInt(key.key.algorithm.hash.name.slice(-3), 10))) {\n alg = `${alg}-${sha}`;\n }\n key.alg ||= alg;\n if (alg !== key.alg)\n throw CodedTypeError('invalid key alg', ERR_INVALID_ARG_VALUE, {\n pk,\n });\n algs.add(key.alg);\n break;\n }\n default:\n throw CodedTypeError('only SHA-512, SHA-384, SHA-256, and SHA-1 RSA-OAEP keys are supported', ERR_INVALID_ARG_VALUE);\n }\n }\n else if (isEcdh(key.key.algorithm)) {\n if (key.key.algorithm.namedCurve !== 'P-256') {\n throw CodedTypeError('Only P-256 ECDH keys are supported', ERR_INVALID_ARG_VALUE);\n }\n checkEcdhAlg(algs, key.alg, pk);\n }\n else if (key.key.algorithm.name === 'X25519') {\n checkEcdhAlg(algs, key.alg, pk);\n }\n else {\n throw CodedTypeError('only RSA-OAEP, ECDH, or X25519 keys are supported', ERR_INVALID_ARG_VALUE);\n }\n normalized.push(key);\n }\n int(config).decrypt = async (jwe) => decrypt(normalized, jwe, contentEncryptionAlgorithms, [...algs]).catch(errorHandler);\n}\nfunction checkCryptoKey(key, alg, epk) {\n if (alg.startsWith('RSA-OAEP')) {\n return true;\n }\n if (alg.startsWith('ECDH-ES')) {\n if (key.algorithm.name !== 'ECDH' && key.algorithm.name !== 'X25519') {\n return false;\n }\n if (key.algorithm.name === 'ECDH') {\n return epk?.crv === key.algorithm.namedCurve;\n }\n if (key.algorithm.name === 'X25519') {\n return epk?.crv === 'X25519';\n }\n }\n return false;\n}\nfunction selectCryptoKeyForDecryption(keys, alg, kid, epk) {\n const { 0: key, length } = keys.filter((key) => {\n if (kid !== key.kid) {\n return false;\n }\n if (key.alg && alg !== key.alg) {\n return false;\n }\n return checkCryptoKey(key.key, alg, epk);\n });\n if (!key) {\n throw e('no applicable decryption key selected', undefined, 'OAUTH_DECRYPTION_FAILED');\n }\n if (length !== 1) {\n throw e('multiple applicable decryption keys selected', undefined, 'OAUTH_DECRYPTION_FAILED');\n }\n return key.key;\n}\nasync function decrypt(keys, jwe, contentEncryptionAlgorithms, keyManagementAlgorithms) {\n return decoder.decode((await compactDecrypt(jwe, (header) => {\n const { kid, alg, epk } = header;\n return selectCryptoKeyForDecryption(keys, alg, kid, epk);\n }, { keyManagementAlgorithms, contentEncryptionAlgorithms }).catch((err) => {\n if (err instanceof JOSEError) {\n throw e('decryption failed', err, 'OAUTH_DECRYPTION_FAILED');\n }\n errorHandler(err);\n })).plaintext);\n}\nfunction getServerHelpers(metadata) {\n return {\n supportsPKCE: {\n __proto__: null,\n value(method = 'S256') {\n return (metadata.code_challenge_methods_supported?.includes(method) === true);\n },\n },\n };\n}\nfunction addServerHelpers(metadata) {\n Object.defineProperties(metadata, getServerHelpers(metadata));\n}\nconst kEntraId = Symbol();\nexport class Configuration {\n constructor(server, clientId, metadata, clientAuthentication) {\n if (typeof clientId !== 'string' || !clientId.length) {\n throw CodedTypeError('\"clientId\" must be a non-empty string', ERR_INVALID_ARG_TYPE);\n }\n if (typeof metadata === 'string') {\n metadata = { client_secret: metadata };\n }\n if (metadata?.client_id !== undefined && clientId !== metadata.client_id) {\n throw CodedTypeError('\"clientId\" and \"metadata.client_id\" must be the same', ERR_INVALID_ARG_VALUE);\n }\n const client = {\n ...structuredClone(metadata),\n client_id: clientId,\n };\n client[oauth.clockSkew] = metadata?.[oauth.clockSkew] ?? 0;\n client[oauth.clockTolerance] = metadata?.[oauth.clockTolerance] ?? 30;\n let auth;\n if (clientAuthentication) {\n auth = clientAuthentication;\n }\n else {\n if (typeof client.client_secret === 'string' &&\n client.client_secret.length) {\n auth = ClientSecretPost(client.client_secret);\n }\n else {\n auth = None();\n }\n }\n let c = Object.freeze(client);\n const clone = structuredClone(server);\n if (kEntraId in server) {\n clone[oauth._expectedIssuer] = ({ claims: { tid } }) => server.issuer.replace('{tenantid}', tid);\n }\n let as = Object.freeze(clone);\n props ||= new WeakMap();\n props.set(this, {\n __proto__: null,\n as,\n c,\n auth,\n tlsOnly: true,\n jwksCache: {},\n });\n }\n serverMetadata() {\n const metadata = structuredClone(int(this).as);\n addServerHelpers(metadata);\n return metadata;\n }\n clientMetadata() {\n const metadata = structuredClone(int(this).c);\n return metadata;\n }\n get timeout() {\n return int(this).timeout;\n }\n set timeout(value) {\n int(this).timeout = value;\n }\n get [customFetch]() {\n return int(this).fetch;\n }\n set [customFetch](value) {\n int(this).fetch = value;\n }\n}\nObject.freeze(Configuration.prototype);\nfunction getHelpers(response) {\n let exp = undefined;\n if (response.expires_in !== undefined) {\n const now = new Date();\n now.setSeconds(now.getSeconds() + response.expires_in);\n exp = now.getTime();\n }\n return {\n expiresIn: {\n __proto__: null,\n value() {\n if (exp) {\n const now = Date.now();\n if (exp > now) {\n return Math.floor((exp - now) / 1000);\n }\n return 0;\n }\n return undefined;\n },\n },\n claims: {\n __proto__: null,\n value() {\n try {\n return oauth.getValidatedIdTokenClaims(this);\n }\n catch {\n return undefined;\n }\n },\n },\n };\n}\nfunction addHelpers(response) {\n Object.defineProperties(response, getHelpers(response));\n}\nexport function getDPoPHandle(config, keyPair, options) {\n checkConfig(config);\n return oauth.DPoP(int(config).c, keyPair, options);\n}\nfunction wait(interval) {\n return new Promise((resolve) => {\n setTimeout(resolve, interval * 1000);\n });\n}\nexport async function pollDeviceAuthorizationGrant(config, deviceAuthorizationResponse, parameters, options) {\n checkConfig(config);\n parameters = new URLSearchParams(parameters);\n let interval = deviceAuthorizationResponse.interval ?? 5;\n const pollingSignal = options?.signal ??\n AbortSignal.timeout(deviceAuthorizationResponse.expires_in * 1000);\n try {\n pollingSignal.throwIfAborted();\n }\n catch (err) {\n errorHandler(err);\n }\n await wait(interval);\n const { as, c, auth, fetch, tlsOnly, nonRepudiation, timeout, decrypt } = int(config);\n const response = await oauth\n .deviceCodeGrantRequest(as, c, auth, deviceAuthorizationResponse.device_code, {\n [oauth.customFetch]: fetch,\n [oauth.allowInsecureRequests]: !tlsOnly,\n additionalParameters: parameters,\n DPoP: options?.DPoP,\n headers: new Headers(headers),\n signal: pollingSignal.aborted ? pollingSignal : signal(timeout),\n })\n .catch(errorHandler);\n const p = oauth.processDeviceCodeResponse(as, c, response, {\n [oauth.jweDecrypt]: decrypt,\n });\n let result;\n try {\n result = await p;\n }\n catch (err) {\n if (retryable(err, options)) {\n return pollDeviceAuthorizationGrant(config, {\n ...deviceAuthorizationResponse,\n interval,\n }, parameters, {\n ...options,\n signal: pollingSignal,\n flag: retry,\n });\n }\n if (err instanceof oauth.ResponseBodyError) {\n switch (err.error) {\n case 'slow_down':\n interval += 5;\n case 'authorization_pending':\n return pollDeviceAuthorizationGrant(config, {\n ...deviceAuthorizationResponse,\n interval,\n }, parameters, {\n ...options,\n signal: pollingSignal,\n flag: undefined,\n });\n }\n }\n errorHandler(err);\n }\n result.id_token && (await nonRepudiation?.(response));\n addHelpers(result);\n return result;\n}\nexport async function initiateDeviceAuthorization(config, parameters) {\n checkConfig(config);\n const { as, c, auth, fetch, tlsOnly, timeout } = int(config);\n return oauth\n .deviceAuthorizationRequest(as, c, auth, parameters, {\n [oauth.customFetch]: fetch,\n [oauth.allowInsecureRequests]: !tlsOnly,\n headers: new Headers(headers),\n signal: signal(timeout),\n })\n .then((response) => oauth.processDeviceAuthorizationResponse(as, c, response))\n .catch(errorHandler);\n}\nexport async function initiateBackchannelAuthentication(config, parameters) {\n checkConfig(config);\n const { as, c, auth, fetch, tlsOnly, timeout } = int(config);\n return oauth\n .backchannelAuthenticationRequest(as, c, auth, parameters, {\n [oauth.customFetch]: fetch,\n [oauth.allowInsecureRequests]: !tlsOnly,\n headers: new Headers(headers),\n signal: signal(timeout),\n })\n .then((response) => oauth.processBackchannelAuthenticationResponse(as, c, response))\n .catch(errorHandler);\n}\nexport async function pollBackchannelAuthenticationGrant(config, backchannelAuthenticationResponse, parameters, options) {\n checkConfig(config);\n parameters = new URLSearchParams(parameters);\n let interval = backchannelAuthenticationResponse.interval ?? 5;\n const pollingSignal = options?.signal ??\n AbortSignal.timeout(backchannelAuthenticationResponse.expires_in * 1000);\n try {\n pollingSignal.throwIfAborted();\n }\n catch (err) {\n errorHandler(err);\n }\n await wait(interval);\n const { as, c, auth, fetch, tlsOnly, nonRepudiation, timeout, decrypt } = int(config);\n const response = await oauth\n .backchannelAuthenticationGrantRequest(as, c, auth, backchannelAuthenticationResponse.auth_req_id, {\n [oauth.customFetch]: fetch,\n [oauth.allowInsecureRequests]: !tlsOnly,\n additionalParameters: parameters,\n DPoP: options?.DPoP,\n headers: new Headers(headers),\n signal: pollingSignal.aborted ? pollingSignal : signal(timeout),\n })\n .catch(errorHandler);\n const p = oauth.processBackchannelAuthenticationGrantResponse(as, c, response, {\n [oauth.jweDecrypt]: decrypt,\n });\n let result;\n try {\n result = await p;\n }\n catch (err) {\n if (retryable(err, options)) {\n return pollBackchannelAuthenticationGrant(config, {\n ...backchannelAuthenticationResponse,\n interval,\n }, parameters, {\n ...options,\n signal: pollingSignal,\n flag: retry,\n });\n }\n if (err instanceof oauth.ResponseBodyError) {\n switch (err.error) {\n case 'slow_down':\n interval += 5;\n case 'authorization_pending':\n return pollBackchannelAuthenticationGrant(config, {\n ...backchannelAuthenticationResponse,\n interval,\n }, parameters, {\n ...options,\n signal: pollingSignal,\n flag: undefined,\n });\n }\n }\n errorHandler(err);\n }\n result.id_token && (await nonRepudiation?.(response));\n addHelpers(result);\n return result;\n}\nexport function allowInsecureRequests(config) {\n int(config).tlsOnly = false;\n}\nexport function setJwksCache(config, jwksCache) {\n int(config).jwksCache = structuredClone(jwksCache);\n}\nexport function getJwksCache(config) {\n const cache = int(config).jwksCache;\n if (cache.uat) {\n return cache;\n }\n return undefined;\n}\nexport function enableNonRepudiationChecks(config) {\n checkConfig(config);\n int(config).nonRepudiation = (response) => {\n const { as, fetch, tlsOnly, timeout, jwksCache } = int(config);\n return oauth\n .validateApplicationLevelSignature(as, response, {\n [oauth.customFetch]: fetch,\n [oauth.allowInsecureRequests]: !tlsOnly,\n headers: new Headers(headers),\n signal: signal(timeout),\n [oauth.jwksCache]: jwksCache,\n })\n .catch(errorHandler);\n };\n}\nexport function useJwtResponseMode(config) {\n checkConfig(config);\n const { hybrid, implicit } = int(config);\n if (hybrid || implicit) {\n throw e('JARM cannot be combined with a hybrid or implicit response types', undefined, oauth.UNSUPPORTED_OPERATION);\n }\n int(config).jarm = (authorizationResponse, expectedState) => validateJARMResponse(config, authorizationResponse, expectedState);\n}\nexport function enableDetachedSignatureResponseChecks(config) {\n if (!int(config).hybrid) {\n throw e('\"code id_token\" response type must be configured to be used first', undefined, oauth.UNSUPPORTED_OPERATION);\n }\n int(config).hybrid = (authorizationResponse, expectedNonce, expectedState, maxAge) => validateCodeIdTokenResponse(config, authorizationResponse, expectedNonce, expectedState, maxAge, true);\n}\nexport async function implicitAuthentication(config, currentUrl, expectedNonce, checks) {\n checkConfig(config);\n if (!(currentUrl instanceof URL) &&\n !webInstanceOf(currentUrl, 'Request')) {\n throw CodedTypeError('\"currentUrl\" must be an instance of URL, or Request', ERR_INVALID_ARG_TYPE);\n }\n if (typeof expectedNonce !== 'string') {\n throw CodedTypeError('\"expectedNonce\" must be a string', ERR_INVALID_ARG_TYPE);\n }\n const { as, c, fetch, tlsOnly, timeout, decrypt, implicit, jwksCache } = int(config);\n if (!implicit) {\n throw new TypeError('implicitAuthentication() cannot be used by clients using flows other than response_type=id_token');\n }\n let params;\n if (!(currentUrl instanceof URL)) {\n const request = currentUrl;\n switch (request.method) {\n case 'GET':\n params = new URLSearchParams(new URL(request.url).hash.slice(1));\n break;\n case 'POST':\n params = new URLSearchParams(await oauth.formPostResponse(request));\n break;\n default:\n throw CodedTypeError('unexpected Request HTTP method', ERR_INVALID_ARG_VALUE);\n }\n }\n else {\n params = new URLSearchParams(currentUrl.hash.slice(1));\n }\n try {\n {\n const decoy = new URLSearchParams(params);\n decoy.delete('id_token');\n oauth.validateAuthResponse({\n ...as,\n authorization_response_iss_parameter_supported: undefined,\n }, c, decoy, checks?.expectedState);\n }\n {\n const decoy = new Response(JSON.stringify({\n access_token: 'decoy',\n token_type: 'bearer',\n id_token: params.get('id_token'),\n }), {\n headers: new Headers({ 'content-type': 'application/json' }),\n });\n const ref = await oauth.processAuthorizationCodeResponse(as, c, decoy, {\n expectedNonce,\n maxAge: checks?.maxAge,\n [oauth.jweDecrypt]: decrypt,\n });\n await oauth.validateApplicationLevelSignature(as, decoy, {\n [oauth.customFetch]: fetch,\n [oauth.allowInsecureRequests]: !tlsOnly,\n headers: new Headers(headers),\n signal: signal(timeout),\n [oauth.jwksCache]: jwksCache,\n });\n return oauth.getValidatedIdTokenClaims(ref);\n }\n }\n catch (err) {\n errorHandler(err);\n }\n}\nexport function useCodeIdTokenResponseType(config) {\n checkConfig(config);\n const { jarm, implicit } = int(config);\n if (jarm || implicit) {\n throw e('\"code id_token\" response type cannot be combined with JARM or implicit response type', undefined, oauth.UNSUPPORTED_OPERATION);\n }\n int(config).hybrid = (authorizationResponse, expectedNonce, expectedState, maxAge) => validateCodeIdTokenResponse(config, authorizationResponse, expectedNonce, expectedState, maxAge, false);\n}\nexport function useIdTokenResponseType(config) {\n checkConfig(config);\n const { jarm, hybrid } = int(config);\n if (jarm || hybrid) {\n throw e('\"id_token\" response type cannot be combined with JARM or hybrid response type', undefined, oauth.UNSUPPORTED_OPERATION);\n }\n int(config).implicit = true;\n}\nfunction stripParams(url) {\n url = new URL(url);\n url.search = '';\n url.hash = '';\n return url.href;\n}\nfunction webInstanceOf(input, toStringTag) {\n try {\n return Object.getPrototypeOf(input)[Symbol.toStringTag] === toStringTag;\n }\n catch {\n return false;\n }\n}\nexport async function authorizationCodeGrant(config, currentUrl, checks, tokenEndpointParameters, options) {\n checkConfig(config);\n if (options?.flag !== retry &&\n !(currentUrl instanceof URL) &&\n !webInstanceOf(currentUrl, 'Request')) {\n throw CodedTypeError('\"currentUrl\" must be an instance of URL, or Request', ERR_INVALID_ARG_TYPE);\n }\n let authResponse;\n let redirectUri;\n const { as, c, auth, fetch, tlsOnly, jarm, hybrid, nonRepudiation, timeout, decrypt, implicit } = int(config);\n if (options?.flag === retry) {\n authResponse = options.authResponse;\n redirectUri = options.redirectUri;\n }\n else {\n if (!(currentUrl instanceof URL)) {\n const request = currentUrl;\n currentUrl = new URL(currentUrl.url);\n switch (request.method) {\n case 'GET':\n break;\n case 'POST':\n const params = new URLSearchParams(await oauth.formPostResponse(request));\n if (hybrid) {\n currentUrl.hash = params.toString();\n }\n else {\n for (const [k, v] of params.entries()) {\n currentUrl.searchParams.append(k, v);\n }\n }\n break;\n default:\n throw CodedTypeError('unexpected Request HTTP method', ERR_INVALID_ARG_VALUE);\n }\n }\n redirectUri = stripParams(currentUrl);\n switch (true) {\n case !!jarm:\n authResponse = await jarm(currentUrl, checks?.expectedState);\n break;\n case !!hybrid:\n authResponse = await hybrid(currentUrl, checks?.expectedNonce, checks?.expectedState, checks?.maxAge);\n break;\n case !!implicit:\n throw new TypeError('authorizationCodeGrant() cannot be used by response_type=id_token clients');\n default:\n try {\n authResponse = oauth.validateAuthResponse(as, c, currentUrl.searchParams, checks?.expectedState);\n }\n catch (err) {\n errorHandler(err);\n }\n }\n }\n const response = await oauth\n .authorizationCodeGrantRequest(as, c, auth, authResponse, redirectUri, checks?.pkceCodeVerifier || oauth._nopkce, {\n additionalParameters: tokenEndpointParameters,\n [oauth.customFetch]: fetch,\n [oauth.allowInsecureRequests]: !tlsOnly,\n DPoP: options?.DPoP,\n headers: new Headers(headers),\n signal: signal(timeout),\n })\n .catch(errorHandler);\n if (typeof checks?.expectedNonce === 'string' ||\n typeof checks?.maxAge === 'number') {\n checks.idTokenExpected = true;\n }\n const p = oauth.processAuthorizationCodeResponse(as, c, response, {\n expectedNonce: checks?.expectedNonce,\n maxAge: checks?.maxAge,\n requireIdToken: checks?.idTokenExpected,\n [oauth.jweDecrypt]: decrypt,\n });\n let result;\n try {\n result = await p;\n }\n catch (err) {\n if (retryable(err, options)) {\n return authorizationCodeGrant(config, undefined, checks, tokenEndpointParameters, {\n ...options,\n flag: retry,\n authResponse: authResponse,\n redirectUri: redirectUri,\n });\n }\n errorHandler(err);\n }\n result.id_token && (await nonRepudiation?.(response));\n addHelpers(result);\n return result;\n}\nasync function validateJARMResponse(config, authorizationResponse, expectedState) {\n const { as, c, fetch, tlsOnly, timeout, decrypt, jwksCache } = int(config);\n return oauth\n .validateJwtAuthResponse(as, c, authorizationResponse, expectedState, {\n [oauth.customFetch]: fetch,\n [oauth.allowInsecureRequests]: !tlsOnly,\n headers: new Headers(headers),\n signal: signal(timeout),\n [oauth.jweDecrypt]: decrypt,\n [oauth.jwksCache]: jwksCache,\n })\n .catch(errorHandler);\n}\nasync function validateCodeIdTokenResponse(config, authorizationResponse, expectedNonce, expectedState, maxAge, fapi) {\n if (typeof expectedNonce !== 'string') {\n throw CodedTypeError('\"expectedNonce\" must be a string', ERR_INVALID_ARG_TYPE);\n }\n if (expectedState !== undefined && typeof expectedState !== 'string') {\n throw CodedTypeError('\"expectedState\" must be a string', ERR_INVALID_ARG_TYPE);\n }\n const { as, c, fetch, tlsOnly, timeout, decrypt, jwksCache } = int(config);\n return (fapi\n ? oauth.validateDetachedSignatureResponse\n : oauth.validateCodeIdTokenResponse)(as, c, authorizationResponse, expectedNonce, expectedState, maxAge, {\n [oauth.customFetch]: fetch,\n [oauth.allowInsecureRequests]: !tlsOnly,\n headers: new Headers(headers),\n signal: signal(timeout),\n [oauth.jweDecrypt]: decrypt,\n [oauth.jwksCache]: jwksCache,\n }).catch(errorHandler);\n}\nexport async function refreshTokenGrant(config, refreshToken, parameters, options) {\n checkConfig(config);\n parameters = new URLSearchParams(parameters);\n const { as, c, auth, fetch, tlsOnly, nonRepudiation, timeout, decrypt } = int(config);\n const response = await oauth\n .refreshTokenGrantRequest(as, c, auth, refreshToken, {\n [oauth.customFetch]: fetch,\n [oauth.allowInsecureRequests]: !tlsOnly,\n additionalParameters: parameters,\n DPoP: options?.DPoP,\n headers: new Headers(headers),\n signal: signal(timeout),\n })\n .catch(errorHandler);\n const p = oauth.processRefreshTokenResponse(as, c, response, {\n [oauth.jweDecrypt]: decrypt,\n });\n let result;\n try {\n result = await p;\n }\n catch (err) {\n if (retryable(err, options)) {\n return refreshTokenGrant(config, refreshToken, parameters, {\n ...options,\n flag: retry,\n });\n }\n errorHandler(err);\n }\n result.id_token && (await nonRepudiation?.(response));\n addHelpers(result);\n return result;\n}\nexport async function clientCredentialsGrant(config, parameters, options) {\n checkConfig(config);\n parameters = new URLSearchParams(parameters);\n const { as, c, auth, fetch, tlsOnly, timeout } = int(config);\n const response = await oauth\n .clientCredentialsGrantRequest(as, c, auth, parameters, {\n [oauth.customFetch]: fetch,\n [oauth.allowInsecureRequests]: !tlsOnly,\n DPoP: options?.DPoP,\n headers: new Headers(headers),\n signal: signal(timeout),\n })\n .catch(errorHandler);\n const p = oauth.processClientCredentialsResponse(as, c, response);\n let result;\n try {\n result = await p;\n }\n catch (err) {\n if (retryable(err, options)) {\n return clientCredentialsGrant(config, parameters, {\n ...options,\n flag: retry,\n });\n }\n errorHandler(err);\n }\n addHelpers(result);\n return result;\n}\nexport function buildAuthorizationUrl(config, parameters) {\n checkConfig(config);\n const { as, c, tlsOnly, hybrid, jarm, implicit } = int(config);\n const authorizationEndpoint = oauth.resolveEndpoint(as, 'authorization_endpoint', false, tlsOnly);\n parameters = new URLSearchParams(parameters);\n if (!parameters.has('client_id')) {\n parameters.set('client_id', c.client_id);\n }\n if (!parameters.has('request_uri') && !parameters.has('request')) {\n if (!parameters.has('response_type')) {\n parameters.set('response_type', hybrid ? 'code id_token' : implicit ? 'id_token' : 'code');\n }\n if (implicit && !parameters.has('nonce')) {\n throw CodedTypeError('response_type=id_token clients must provide a nonce parameter in their authorization request parameters', ERR_INVALID_ARG_VALUE);\n }\n if (jarm) {\n parameters.set('response_mode', 'jwt');\n }\n }\n for (const [k, v] of parameters.entries()) {\n authorizationEndpoint.searchParams.append(k, v);\n }\n return authorizationEndpoint;\n}\nexport async function buildAuthorizationUrlWithJAR(config, parameters, signingKey, options) {\n checkConfig(config);\n const authorizationEndpoint = buildAuthorizationUrl(config, parameters);\n parameters = authorizationEndpoint.searchParams;\n if (!signingKey) {\n throw CodedTypeError('\"signingKey\" must be provided', ERR_INVALID_ARG_VALUE);\n }\n const { as, c } = int(config);\n const request = await oauth\n .issueRequestObject(as, c, parameters, signingKey, options)\n .catch(errorHandler);\n return buildAuthorizationUrl(config, { request });\n}\nexport async function buildAuthorizationUrlWithPAR(config, parameters, options) {\n checkConfig(config);\n const authorizationEndpoint = buildAuthorizationUrl(config, parameters);\n const { as, c, auth, fetch, tlsOnly, timeout } = int(config);\n const response = await oauth\n .pushedAuthorizationRequest(as, c, auth, authorizationEndpoint.searchParams, {\n [oauth.customFetch]: fetch,\n [oauth.allowInsecureRequests]: !tlsOnly,\n DPoP: options?.DPoP,\n headers: new Headers(headers),\n signal: signal(timeout),\n })\n .catch(errorHandler);\n const p = oauth.processPushedAuthorizationResponse(as, c, response);\n let result;\n try {\n result = await p;\n }\n catch (err) {\n if (retryable(err, options)) {\n return buildAuthorizationUrlWithPAR(config, parameters, {\n ...options,\n flag: retry,\n });\n }\n errorHandler(err);\n }\n return buildAuthorizationUrl(config, { request_uri: result.request_uri });\n}\nexport function buildEndSessionUrl(config, parameters) {\n checkConfig(config);\n const { as, c, tlsOnly } = int(config);\n const endSessionEndpoint = oauth.resolveEndpoint(as, 'end_session_endpoint', false, tlsOnly);\n parameters = new URLSearchParams(parameters);\n if (!parameters.has('client_id')) {\n parameters.set('client_id', c.client_id);\n }\n for (const [k, v] of parameters.entries()) {\n endSessionEndpoint.searchParams.append(k, v);\n }\n return endSessionEndpoint;\n}\nfunction checkConfig(input) {\n if (!(input instanceof Configuration)) {\n throw CodedTypeError('\"config\" must be an instance of Configuration', ERR_INVALID_ARG_TYPE);\n }\n if (Object.getPrototypeOf(input) !== Configuration.prototype) {\n throw CodedTypeError('subclassing Configuration is not allowed', ERR_INVALID_ARG_VALUE);\n }\n}\nfunction signal(timeout) {\n return timeout ? AbortSignal.timeout(timeout * 1000) : undefined;\n}\nexport async function fetchUserInfo(config, accessToken, expectedSubject, options) {\n checkConfig(config);\n const { as, c, fetch, tlsOnly, nonRepudiation, timeout, decrypt } = int(config);\n const response = await oauth\n .userInfoRequest(as, c, accessToken, {\n [oauth.customFetch]: fetch,\n [oauth.allowInsecureRequests]: !tlsOnly,\n DPoP: options?.DPoP,\n headers: new Headers(headers),\n signal: signal(timeout),\n })\n .catch(errorHandler);\n let exec = oauth.processUserInfoResponse(as, c, expectedSubject, response, {\n [oauth.jweDecrypt]: decrypt,\n });\n let result;\n try {\n result = await exec;\n }\n catch (err) {\n if (retryable(err, options)) {\n return fetchUserInfo(config, accessToken, expectedSubject, {\n ...options,\n flag: retry,\n });\n }\n errorHandler(err);\n }\n oauth.getContentType(response) === 'application/jwt' &&\n (await nonRepudiation?.(response));\n return result;\n}\nfunction retryable(err, options) {\n if (options?.DPoP && options.flag !== retry) {\n return oauth.isDPoPNonceError(err);\n }\n return false;\n}\nexport async function tokenIntrospection(config, token, parameters) {\n checkConfig(config);\n const { as, c, auth, fetch, tlsOnly, nonRepudiation, timeout, decrypt } = int(config);\n const response = await oauth\n .introspectionRequest(as, c, auth, token, {\n [oauth.customFetch]: fetch,\n [oauth.allowInsecureRequests]: !tlsOnly,\n additionalParameters: new URLSearchParams(parameters),\n headers: new Headers(headers),\n signal: signal(timeout),\n })\n .catch(errorHandler);\n const result = await oauth\n .processIntrospectionResponse(as, c, response, {\n [oauth.jweDecrypt]: decrypt,\n })\n .catch(errorHandler);\n oauth.getContentType(response) === 'application/token-introspection+jwt' &&\n (await nonRepudiation?.(response));\n return result;\n}\nconst retry = Symbol();\nexport async function genericGrantRequest(config, grantType, parameters, options) {\n checkConfig(config);\n const { as, c, auth, fetch, tlsOnly, timeout, decrypt } = int(config);\n const result = await oauth\n .genericTokenEndpointRequest(as, c, auth, grantType, new URLSearchParams(parameters), {\n [oauth.customFetch]: fetch,\n [oauth.allowInsecureRequests]: !tlsOnly,\n DPoP: options?.DPoP,\n headers: new Headers(headers),\n signal: signal(timeout),\n })\n .then((response) => oauth.processGenericTokenEndpointResponse(as, c, response, {\n [oauth.jweDecrypt]: decrypt,\n }))\n .catch(errorHandler);\n addHelpers(result);\n return result;\n}\nexport async function tokenRevocation(config, token, parameters) {\n checkConfig(config);\n const { as, c, auth, fetch, tlsOnly, timeout } = int(config);\n return oauth\n .revocationRequest(as, c, auth, token, {\n [oauth.customFetch]: fetch,\n [oauth.allowInsecureRequests]: !tlsOnly,\n additionalParameters: new URLSearchParams(parameters),\n headers: new Headers(headers),\n signal: signal(timeout),\n })\n .then(oauth.processRevocationResponse)\n .catch(errorHandler);\n}\nexport async function fetchProtectedResource(config, accessToken, url, method, body, headers, options) {\n checkConfig(config);\n headers ||= new Headers();\n if (!headers.has('user-agent')) {\n headers.set('user-agent', USER_AGENT);\n }\n const { fetch, tlsOnly, timeout } = int(config);\n const exec = oauth.protectedResourceRequest(accessToken, method, url, headers, body, {\n [oauth.customFetch]: fetch,\n [oauth.allowInsecureRequests]: !tlsOnly,\n DPoP: options?.DPoP,\n signal: signal(timeout),\n });\n let result;\n try {\n result = await exec;\n }\n catch (err) {\n if (retryable(err, options)) {\n return fetchProtectedResource(config, accessToken, url, method, body, headers, {\n ...options,\n flag: retry,\n });\n }\n errorHandler(err);\n }\n return result;\n}\n//# sourceMappingURL=index.js.map","/* eslint-disable @typescript-eslint/strict-boolean-expressions */\n\n// ---------------------------------------------------------------------------\n// Specific encodings\n// ---------------------------------------------------------------------------\nvar base16Encoding = {\n chars: '0123456789ABCDEF',\n bits: 4\n};\nvar base32Encoding = {\n chars: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bits: 5\n};\nvar base32HexEncoding = {\n chars: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bits: 5\n};\nvar base64Encoding = {\n chars: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bits: 6\n};\nvar base64UrlEncoding = {\n chars: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bits: 6\n};\nvar base16 = {\n parse: function parse(string, opts) {\n return _parse(string.toUpperCase(), base16Encoding, opts);\n },\n stringify: function stringify(data, opts) {\n return _stringify(data, base16Encoding, opts);\n }\n};\nvar base32 = {\n parse: function parse(string, opts) {\n if (opts === void 0) {\n opts = {};\n }\n return _parse(opts.loose ? string.toUpperCase().replace(/0/g, 'O').replace(/1/g, 'L').replace(/8/g, 'B') : string, base32Encoding, opts);\n },\n stringify: function stringify(data, opts) {\n return _stringify(data, base32Encoding, opts);\n }\n};\nvar base32hex = {\n parse: function parse(string, opts) {\n return _parse(string, base32HexEncoding, opts);\n },\n stringify: function stringify(data, opts) {\n return _stringify(data, base32HexEncoding, opts);\n }\n};\nvar base64 = {\n parse: function parse(string, opts) {\n return _parse(string, base64Encoding, opts);\n },\n stringify: function stringify(data, opts) {\n return _stringify(data, base64Encoding, opts);\n }\n};\nvar base64url = {\n parse: function parse(string, opts) {\n return _parse(string, base64UrlEncoding, opts);\n },\n stringify: function stringify(data, opts) {\n return _stringify(data, base64UrlEncoding, opts);\n }\n};\n\n// ---------------------------------------------------------------------------\n// Codec implementation\n// ---------------------------------------------------------------------------\n\nvar codec = {\n parse: _parse,\n stringify: _stringify\n};\nfunction _parse(string, encoding, opts) {\n var _opts$out;\n if (opts === void 0) {\n opts = {};\n }\n // Build the character lookup table:\n if (!encoding.codes) {\n encoding.codes = {};\n for (var i = 0; i < encoding.chars.length; ++i) {\n encoding.codes[encoding.chars[i]] = i;\n }\n }\n\n // The string must have a whole number of bytes:\n if (!opts.loose && string.length * encoding.bits & 7) {\n throw new SyntaxError('Invalid padding');\n }\n\n // Count the padding bytes:\n var end = string.length;\n while (string[end - 1] === '=') {\n --end;\n\n // If we get a whole number of bytes, there is too much padding:\n if (!opts.loose && !((string.length - end) * encoding.bits & 7)) {\n throw new SyntaxError('Invalid padding');\n }\n }\n\n // Allocate the output:\n var out = new ((_opts$out = opts.out) != null ? _opts$out : Uint8Array)(end * encoding.bits / 8 | 0);\n\n // Parse the data:\n var bits = 0; // Number of bits currently in the buffer\n var buffer = 0; // Bits waiting to be written out, MSB first\n var written = 0; // Next byte to write\n for (var _i = 0; _i < end; ++_i) {\n // Read one character from the string:\n var value = encoding.codes[string[_i]];\n if (value === undefined) {\n throw new SyntaxError('Invalid character ' + string[_i]);\n }\n\n // Append the bits to the buffer:\n buffer = buffer << encoding.bits | value;\n bits += encoding.bits;\n\n // Write out some bits if the buffer has a byte's worth:\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 0xff & buffer >> bits;\n }\n }\n\n // Verify that we have received just enough bits:\n if (bits >= encoding.bits || 0xff & buffer << 8 - bits) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n}\nfunction _stringify(data, encoding, opts) {\n if (opts === void 0) {\n opts = {};\n }\n var _opts = opts,\n _opts$pad = _opts.pad,\n pad = _opts$pad === void 0 ? true : _opts$pad;\n var mask = (1 << encoding.bits) - 1;\n var out = '';\n var bits = 0; // Number of bits currently in the buffer\n var buffer = 0; // Bits waiting to be written out, MSB first\n for (var i = 0; i < data.length; ++i) {\n // Slurp data into the buffer:\n buffer = buffer << 8 | 0xff & data[i];\n bits += 8;\n\n // Write out as much as we can:\n while (bits > encoding.bits) {\n bits -= encoding.bits;\n out += encoding.chars[mask & buffer >> bits];\n }\n }\n\n // Partial character:\n if (bits) {\n out += encoding.chars[mask & buffer << encoding.bits - bits];\n }\n\n // Add padding characters until we hit a byte boundary:\n if (pad) {\n while (out.length * encoding.bits & 7) {\n out += '=';\n }\n }\n return out;\n}\n\nexport { base16, base32, base32hex, base64, base64url, codec };\n","import * as oidc from 'openid-client';\nimport { base64url } from 'rfc4648';\nclass OidcClient {\n constructor(c) {\n this.config = c;\n }\n async refresh(token) {\n const newToken = await oidc.refreshTokenGrant(this.config, token);\n return {\n id_token: newToken.id_token,\n refresh_token: newToken.refresh_token,\n expires_at: newToken.expiresIn(),\n };\n }\n}\nexport class OpenIDConnectAuth {\n constructor() {\n // public for testing purposes.\n this.currentTokenExpiration = 0;\n }\n static decodeJWT(token) {\n const parts = token.split('.');\n if (parts.length !== 3) {\n return null;\n }\n const header = JSON.parse(new TextDecoder().decode(base64url.parse(parts[0], { loose: true })));\n const payload = JSON.parse(new TextDecoder().decode(base64url.parse(parts[1], { loose: true })));\n const signature = parts[2];\n return {\n header,\n payload,\n signature,\n };\n }\n static expirationFromToken(token) {\n const jwt = OpenIDConnectAuth.decodeJWT(token);\n if (!jwt) {\n return 0;\n }\n return jwt.payload.exp;\n }\n isAuthProvider(user) {\n if (!user.authProvider) {\n return false;\n }\n return user.authProvider.name === 'oidc';\n }\n /**\n * Setup the authentication header for oidc authed clients\n * @param user user info\n * @param opts request options\n * @param overrideClient for testing, a preconfigured oidc client\n */\n async applyAuthentication(user, opts, overrideClient) {\n const token = await this.getToken(user, overrideClient);\n if (token) {\n opts.headers['Authorization'] = `Bearer ${token}`;\n }\n }\n async getToken(user, overrideClient) {\n if (!user.authProvider.config) {\n return null;\n }\n if (!user.authProvider.config['client-secret']) {\n user.authProvider.config['client-secret'] = '';\n }\n if (!user.authProvider.config || !user.authProvider.config['id-token']) {\n return null;\n }\n return this.refresh(user, overrideClient);\n }\n async refresh(user, overrideClient) {\n if (this.currentTokenExpiration === 0) {\n this.currentTokenExpiration = OpenIDConnectAuth.expirationFromToken(user.authProvider.config['id-token']);\n }\n if (Date.now() / 1000 > this.currentTokenExpiration) {\n if (!user.authProvider.config['client-id'] ||\n !user.authProvider.config['refresh-token'] ||\n !user.authProvider.config['idp-issuer-url']) {\n return null;\n }\n const client = overrideClient ? overrideClient : await this.getClient(user);\n const newToken = await client.refresh(user.authProvider.config['refresh-token']);\n user.authProvider.config['id-token'] = newToken.id_token;\n user.authProvider.config['refresh-token'] = newToken.refresh_token;\n this.currentTokenExpiration = newToken.expires_at;\n }\n return user.authProvider.config['id-token'];\n }\n async getClient(user) {\n const configuration = await oidc.discovery(user.authProvider.config['idp-issuer-url'], user.authProvider.config['client-id']);\n return new OidcClient(configuration);\n }\n}\n//# sourceMappingURL=oidc_auth.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst buffer_1 = require(\"buffer\");\n/**\n * Error strings\n */\nconst ERRORS = {\n INVALID_ENCODING: 'Invalid encoding provided. Please specify a valid encoding the internal Node.js Buffer supports.',\n INVALID_SMARTBUFFER_SIZE: 'Invalid size provided. Size must be a valid integer greater than zero.',\n INVALID_SMARTBUFFER_BUFFER: 'Invalid Buffer provided in SmartBufferOptions.',\n INVALID_SMARTBUFFER_OBJECT: 'Invalid SmartBufferOptions object supplied to SmartBuffer constructor or factory methods.',\n INVALID_OFFSET: 'An invalid offset value was provided.',\n INVALID_OFFSET_NON_NUMBER: 'An invalid offset value was provided. A numeric value is required.',\n INVALID_LENGTH: 'An invalid length value was provided.',\n INVALID_LENGTH_NON_NUMBER: 'An invalid length value was provived. A numeric value is required.',\n INVALID_TARGET_OFFSET: 'Target offset is beyond the bounds of the internal SmartBuffer data.',\n INVALID_TARGET_LENGTH: 'Specified length value moves cursor beyong the bounds of the internal SmartBuffer data.',\n INVALID_READ_BEYOND_BOUNDS: 'Attempted to read beyond the bounds of the managed data.',\n INVALID_WRITE_BEYOND_BOUNDS: 'Attempted to write beyond the bounds of the managed data.'\n};\nexports.ERRORS = ERRORS;\n/**\n * Checks if a given encoding is a valid Buffer encoding. (Throws an exception if check fails)\n *\n * @param { String } encoding The encoding string to check.\n */\nfunction checkEncoding(encoding) {\n if (!buffer_1.Buffer.isEncoding(encoding)) {\n throw new Error(ERRORS.INVALID_ENCODING);\n }\n}\nexports.checkEncoding = checkEncoding;\n/**\n * Checks if a given number is a finite integer. (Throws an exception if check fails)\n *\n * @param { Number } value The number value to check.\n */\nfunction isFiniteInteger(value) {\n return typeof value === 'number' && isFinite(value) && isInteger(value);\n}\nexports.isFiniteInteger = isFiniteInteger;\n/**\n * Checks if an offset/length value is valid. (Throws an exception if check fails)\n *\n * @param value The value to check.\n * @param offset True if checking an offset, false if checking a length.\n */\nfunction checkOffsetOrLengthValue(value, offset) {\n if (typeof value === 'number') {\n // Check for non finite/non integers\n if (!isFiniteInteger(value) || value < 0) {\n throw new Error(offset ? ERRORS.INVALID_OFFSET : ERRORS.INVALID_LENGTH);\n }\n }\n else {\n throw new Error(offset ? ERRORS.INVALID_OFFSET_NON_NUMBER : ERRORS.INVALID_LENGTH_NON_NUMBER);\n }\n}\n/**\n * Checks if a length value is valid. (Throws an exception if check fails)\n *\n * @param { Number } length The value to check.\n */\nfunction checkLengthValue(length) {\n checkOffsetOrLengthValue(length, false);\n}\nexports.checkLengthValue = checkLengthValue;\n/**\n * Checks if a offset value is valid. (Throws an exception if check fails)\n *\n * @param { Number } offset The value to check.\n */\nfunction checkOffsetValue(offset) {\n checkOffsetOrLengthValue(offset, true);\n}\nexports.checkOffsetValue = checkOffsetValue;\n/**\n * Checks if a target offset value is out of bounds. (Throws an exception if check fails)\n *\n * @param { Number } offset The offset value to check.\n * @param { SmartBuffer } buff The SmartBuffer instance to check against.\n */\nfunction checkTargetOffset(offset, buff) {\n if (offset < 0 || offset > buff.length) {\n throw new Error(ERRORS.INVALID_TARGET_OFFSET);\n }\n}\nexports.checkTargetOffset = checkTargetOffset;\n/**\n * Determines whether a given number is a integer.\n * @param value The number to check.\n */\nfunction isInteger(value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n}\n/**\n * Throws if Node.js version is too low to support bigint\n */\nfunction bigIntAndBufferInt64Check(bufferMethod) {\n if (typeof BigInt === 'undefined') {\n throw new Error('Platform does not support JS BigInt type.');\n }\n if (typeof buffer_1.Buffer.prototype[bufferMethod] === 'undefined') {\n throw new Error(`Platform does not support Buffer.prototype.${bufferMethod}.`);\n }\n}\nexports.bigIntAndBufferInt64Check = bigIntAndBufferInt64Check;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst utils_1 = require(\"./utils\");\n// The default Buffer size if one is not provided.\nconst DEFAULT_SMARTBUFFER_SIZE = 4096;\n// The default string encoding to use for reading/writing strings.\nconst DEFAULT_SMARTBUFFER_ENCODING = 'utf8';\nclass SmartBuffer {\n /**\n * Creates a new SmartBuffer instance.\n *\n * @param options { SmartBufferOptions } The SmartBufferOptions to apply to this instance.\n */\n constructor(options) {\n this.length = 0;\n this._encoding = DEFAULT_SMARTBUFFER_ENCODING;\n this._writeOffset = 0;\n this._readOffset = 0;\n if (SmartBuffer.isSmartBufferOptions(options)) {\n // Checks for encoding\n if (options.encoding) {\n utils_1.checkEncoding(options.encoding);\n this._encoding = options.encoding;\n }\n // Checks for initial size length\n if (options.size) {\n if (utils_1.isFiniteInteger(options.size) && options.size > 0) {\n this._buff = Buffer.allocUnsafe(options.size);\n }\n else {\n throw new Error(utils_1.ERRORS.INVALID_SMARTBUFFER_SIZE);\n }\n // Check for initial Buffer\n }\n else if (options.buff) {\n if (Buffer.isBuffer(options.buff)) {\n this._buff = options.buff;\n this.length = options.buff.length;\n }\n else {\n throw new Error(utils_1.ERRORS.INVALID_SMARTBUFFER_BUFFER);\n }\n }\n else {\n this._buff = Buffer.allocUnsafe(DEFAULT_SMARTBUFFER_SIZE);\n }\n }\n else {\n // If something was passed but it's not a SmartBufferOptions object\n if (typeof options !== 'undefined') {\n throw new Error(utils_1.ERRORS.INVALID_SMARTBUFFER_OBJECT);\n }\n // Otherwise default to sane options\n this._buff = Buffer.allocUnsafe(DEFAULT_SMARTBUFFER_SIZE);\n }\n }\n /**\n * Creates a new SmartBuffer instance with the provided internal Buffer size and optional encoding.\n *\n * @param size { Number } The size of the internal Buffer.\n * @param encoding { String } The BufferEncoding to use for strings.\n *\n * @return { SmartBuffer }\n */\n static fromSize(size, encoding) {\n return new this({\n size: size,\n encoding: encoding\n });\n }\n /**\n * Creates a new SmartBuffer instance with the provided Buffer and optional encoding.\n *\n * @param buffer { Buffer } The Buffer to use as the internal Buffer value.\n * @param encoding { String } The BufferEncoding to use for strings.\n *\n * @return { SmartBuffer }\n */\n static fromBuffer(buff, encoding) {\n return new this({\n buff: buff,\n encoding: encoding\n });\n }\n /**\n * Creates a new SmartBuffer instance with the provided SmartBufferOptions options.\n *\n * @param options { SmartBufferOptions } The options to use when creating the SmartBuffer instance.\n */\n static fromOptions(options) {\n return new this(options);\n }\n /**\n * Type checking function that determines if an object is a SmartBufferOptions object.\n */\n static isSmartBufferOptions(options) {\n const castOptions = options;\n return (castOptions &&\n (castOptions.encoding !== undefined || castOptions.size !== undefined || castOptions.buff !== undefined));\n }\n // Signed integers\n /**\n * Reads an Int8 value from the current read position or an optionally provided offset.\n *\n * @param offset { Number } The offset to read data from (optional)\n * @return { Number }\n */\n readInt8(offset) {\n return this._readNumberValue(Buffer.prototype.readInt8, 1, offset);\n }\n /**\n * Reads an Int16BE value from the current read position or an optionally provided offset.\n *\n * @param offset { Number } The offset to read data from (optional)\n * @return { Number }\n */\n readInt16BE(offset) {\n return this._readNumberValue(Buffer.prototype.readInt16BE, 2, offset);\n }\n /**\n * Reads an Int16LE value from the current read position or an optionally provided offset.\n *\n * @param offset { Number } The offset to read data from (optional)\n * @return { Number }\n */\n readInt16LE(offset) {\n return this._readNumberValue(Buffer.prototype.readInt16LE, 2, offset);\n }\n /**\n * Reads an Int32BE value from the current read position or an optionally provided offset.\n *\n * @param offset { Number } The offset to read data from (optional)\n * @return { Number }\n */\n readInt32BE(offset) {\n return this._readNumberValue(Buffer.prototype.readInt32BE, 4, offset);\n }\n /**\n * Reads an Int32LE value from the current read position or an optionally provided offset.\n *\n * @param offset { Number } The offset to read data from (optional)\n * @return { Number }\n */\n readInt32LE(offset) {\n return this._readNumberValue(Buffer.prototype.readInt32LE, 4, offset);\n }\n /**\n * Reads a BigInt64BE value from the current read position or an optionally provided offset.\n *\n * @param offset { Number } The offset to read data from (optional)\n * @return { BigInt }\n */\n readBigInt64BE(offset) {\n utils_1.bigIntAndBufferInt64Check('readBigInt64BE');\n return this._readNumberValue(Buffer.prototype.readBigInt64BE, 8, offset);\n }\n /**\n * Reads a BigInt64LE value from the current read position or an optionally provided offset.\n *\n * @param offset { Number } The offset to read data from (optional)\n * @return { BigInt }\n */\n readBigInt64LE(offset) {\n utils_1.bigIntAndBufferInt64Check('readBigInt64LE');\n return this._readNumberValue(Buffer.prototype.readBigInt64LE, 8, offset);\n }\n /**\n * Writes an Int8 value to the current write position (or at optional offset).\n *\n * @param value { Number } The value to write.\n * @param offset { Number } The offset to write the value at.\n *\n * @return this\n */\n writeInt8(value, offset) {\n this._writeNumberValue(Buffer.prototype.writeInt8, 1, value, offset);\n return this;\n }\n /**\n * Inserts an Int8 value at the given offset value.\n *\n * @param value { Number } The value to insert.\n * @param offset { Number } The offset to insert the value at.\n *\n * @return this\n */\n insertInt8(value, offset) {\n return this._insertNumberValue(Buffer.prototype.writeInt8, 1, value, offset);\n }\n /**\n * Writes an Int16BE value to the current write position (or at optional offset).\n *\n * @param value { Number } The value to write.\n * @param offset { Number } The offset to write the value at.\n *\n * @return this\n */\n writeInt16BE(value, offset) {\n return this._writeNumberValue(Buffer.prototype.writeInt16BE, 2, value, offset);\n }\n /**\n * Inserts an Int16BE value at the given offset value.\n *\n * @param value { Number } The value to insert.\n * @param offset { Number } The offset to insert the value at.\n *\n * @return this\n */\n insertInt16BE(value, offset) {\n return this._insertNumberValue(Buffer.prototype.writeInt16BE, 2, value, offset);\n }\n /**\n * Writes an Int16LE value to the current write position (or at optional offset).\n *\n * @param value { Number } The value to write.\n * @param offset { Number } The offset to write the value at.\n *\n * @return this\n */\n writeInt16LE(value, offset) {\n return this._writeNumberValue(Buffer.prototype.writeInt16LE, 2, value, offset);\n }\n /**\n * Inserts an Int16LE value at the given offset value.\n *\n * @param value { Number } The value to insert.\n * @param offset { Number } The offset to insert the value at.\n *\n * @return this\n */\n insertInt16LE(value, offset) {\n return this._insertNumberValue(Buffer.prototype.writeInt16LE, 2, value, offset);\n }\n /**\n * Writes an Int32BE value to the current write position (or at optional offset).\n *\n * @param value { Number } The value to write.\n * @param offset { Number } The offset to write the value at.\n *\n * @return this\n */\n writeInt32BE(value, offset) {\n return this._writeNumberValue(Buffer.prototype.writeInt32BE, 4, value, offset);\n }\n /**\n * Inserts an Int32BE value at the given offset value.\n *\n * @param value { Number } The value to insert.\n * @param offset { Number } The offset to insert the value at.\n *\n * @return this\n */\n insertInt32BE(value, offset) {\n return this._insertNumberValue(Buffer.prototype.writeInt32BE, 4, value, offset);\n }\n /**\n * Writes an Int32LE value to the current write position (or at optional offset).\n *\n * @param value { Number } The value to write.\n * @param offset { Number } The offset to write the value at.\n *\n * @return this\n */\n writeInt32LE(value, offset) {\n return this._writeNumberValue(Buffer.prototype.writeInt32LE, 4, value, offset);\n }\n /**\n * Inserts an Int32LE value at the given offset value.\n *\n * @param value { Number } The value to insert.\n * @param offset { Number } The offset to insert the value at.\n *\n * @return this\n */\n insertInt32LE(value, offset) {\n return this._insertNumberValue(Buffer.prototype.writeInt32LE, 4, value, offset);\n }\n /**\n * Writes a BigInt64BE value to the current write position (or at optional offset).\n *\n * @param value { BigInt } The value to write.\n * @param offset { Number } The offset to write the value at.\n *\n * @return this\n */\n writeBigInt64BE(value, offset) {\n utils_1.bigIntAndBufferInt64Check('writeBigInt64BE');\n return this._writeNumberValue(Buffer.prototype.writeBigInt64BE, 8, value, offset);\n }\n /**\n * Inserts a BigInt64BE value at the given offset value.\n *\n * @param value { BigInt } The value to insert.\n * @param offset { Number } The offset to insert the value at.\n *\n * @return this\n */\n insertBigInt64BE(value, offset) {\n utils_1.bigIntAndBufferInt64Check('writeBigInt64BE');\n return this._insertNumberValue(Buffer.prototype.writeBigInt64BE, 8, value, offset);\n }\n /**\n * Writes a BigInt64LE value to the current write position (or at optional offset).\n *\n * @param value { BigInt } The value to write.\n * @param offset { Number } The offset to write the value at.\n *\n * @return this\n */\n writeBigInt64LE(value, offset) {\n utils_1.bigIntAndBufferInt64Check('writeBigInt64LE');\n return this._writeNumberValue(Buffer.prototype.writeBigInt64LE, 8, value, offset);\n }\n /**\n * Inserts a Int64LE value at the given offset value.\n *\n * @param value { BigInt } The value to insert.\n * @param offset { Number } The offset to insert the value at.\n *\n * @return this\n */\n insertBigInt64LE(value, offset) {\n utils_1.bigIntAndBufferInt64Check('writeBigInt64LE');\n return this._insertNumberValue(Buffer.prototype.writeBigInt64LE, 8, value, offset);\n }\n // Unsigned Integers\n /**\n * Reads an UInt8 value from the current read position or an optionally provided offset.\n *\n * @param offset { Number } The offset to read data from (optional)\n * @return { Number }\n */\n readUInt8(offset) {\n return this._readNumberValue(Buffer.prototype.readUInt8, 1, offset);\n }\n /**\n * Reads an UInt16BE value from the current read position or an optionally provided offset.\n *\n * @param offset { Number } The offset to read data from (optional)\n * @return { Number }\n */\n readUInt16BE(offset) {\n return this._readNumberValue(Buffer.prototype.readUInt16BE, 2, offset);\n }\n /**\n * Reads an UInt16LE value from the current read position or an optionally provided offset.\n *\n * @param offset { Number } The offset to read data from (optional)\n * @return { Number }\n */\n readUInt16LE(offset) {\n return this._readNumberValue(Buffer.prototype.readUInt16LE, 2, offset);\n }\n /**\n * Reads an UInt32BE value from the current read position or an optionally provided offset.\n *\n * @param offset { Number } The offset to read data from (optional)\n * @return { Number }\n */\n readUInt32BE(offset) {\n return this._readNumberValue(Buffer.prototype.readUInt32BE, 4, offset);\n }\n /**\n * Reads an UInt32LE value from the current read position or an optionally provided offset.\n *\n * @param offset { Number } The offset to read data from (optional)\n * @return { Number }\n */\n readUInt32LE(offset) {\n return this._readNumberValue(Buffer.prototype.readUInt32LE, 4, offset);\n }\n /**\n * Reads a BigUInt64BE value from the current read position or an optionally provided offset.\n *\n * @param offset { Number } The offset to read data from (optional)\n * @return { BigInt }\n */\n readBigUInt64BE(offset) {\n utils_1.bigIntAndBufferInt64Check('readBigUInt64BE');\n return this._readNumberValue(Buffer.prototype.readBigUInt64BE, 8, offset);\n }\n /**\n * Reads a BigUInt64LE value from the current read position or an optionally provided offset.\n *\n * @param offset { Number } The offset to read data from (optional)\n * @return { BigInt }\n */\n readBigUInt64LE(offset) {\n utils_1.bigIntAndBufferInt64Check('readBigUInt64LE');\n return this._readNumberValue(Buffer.prototype.readBigUInt64LE, 8, offset);\n }\n /**\n * Writes an UInt8 value to the current write position (or at optional offset).\n *\n * @param value { Number } The value to write.\n * @param offset { Number } The offset to write the value at.\n *\n * @return this\n */\n writeUInt8(value, offset) {\n return this._writeNumberValue(Buffer.prototype.writeUInt8, 1, value, offset);\n }\n /**\n * Inserts an UInt8 value at the given offset value.\n *\n * @param value { Number } The value to insert.\n * @param offset { Number } The offset to insert the value at.\n *\n * @return this\n */\n insertUInt8(value, offset) {\n return this._insertNumberValue(Buffer.prototype.writeUInt8, 1, value, offset);\n }\n /**\n * Writes an UInt16BE value to the current write position (or at optional offset).\n *\n * @param value { Number } The value to write.\n * @param offset { Number } The offset to write the value at.\n *\n * @return this\n */\n writeUInt16BE(value, offset) {\n return this._writeNumberValue(Buffer.prototype.writeUInt16BE, 2, value, offset);\n }\n /**\n * Inserts an UInt16BE value at the given offset value.\n *\n * @param value { Number } The value to insert.\n * @param offset { Number } The offset to insert the value at.\n *\n * @return this\n */\n insertUInt16BE(value, offset) {\n return this._insertNumberValue(Buffer.prototype.writeUInt16BE, 2, value, offset);\n }\n /**\n * Writes an UInt16LE value to the current write position (or at optional offset).\n *\n * @param value { Number } The value to write.\n * @param offset { Number } The offset to write the value at.\n *\n * @return this\n */\n writeUInt16LE(value, offset) {\n return this._writeNumberValue(Buffer.prototype.writeUInt16LE, 2, value, offset);\n }\n /**\n * Inserts an UInt16LE value at the given offset value.\n *\n * @param value { Number } The value to insert.\n * @param offset { Number } The offset to insert the value at.\n *\n * @return this\n */\n insertUInt16LE(value, offset) {\n return this._insertNumberValue(Buffer.prototype.writeUInt16LE, 2, value, offset);\n }\n /**\n * Writes an UInt32BE value to the current write position (or at optional offset).\n *\n * @param value { Number } The value to write.\n * @param offset { Number } The offset to write the value at.\n *\n * @return this\n */\n writeUInt32BE(value, offset) {\n return this._writeNumberValue(Buffer.prototype.writeUInt32BE, 4, value, offset);\n }\n /**\n * Inserts an UInt32BE value at the given offset value.\n *\n * @param value { Number } The value to insert.\n * @param offset { Number } The offset to insert the value at.\n *\n * @return this\n */\n insertUInt32BE(value, offset) {\n return this._insertNumberValue(Buffer.prototype.writeUInt32BE, 4, value, offset);\n }\n /**\n * Writes an UInt32LE value to the current write position (or at optional offset).\n *\n * @param value { Number } The value to write.\n * @param offset { Number } The offset to write the value at.\n *\n * @return this\n */\n writeUInt32LE(value, offset) {\n return this._writeNumberValue(Buffer.prototype.writeUInt32LE, 4, value, offset);\n }\n /**\n * Inserts an UInt32LE value at the given offset value.\n *\n * @param value { Number } The value to insert.\n * @param offset { Number } The offset to insert the value at.\n *\n * @return this\n */\n insertUInt32LE(value, offset) {\n return this._insertNumberValue(Buffer.prototype.writeUInt32LE, 4, value, offset);\n }\n /**\n * Writes a BigUInt64BE value to the current write position (or at optional offset).\n *\n * @param value { Number } The value to write.\n * @param offset { Number } The offset to write the value at.\n *\n * @return this\n */\n writeBigUInt64BE(value, offset) {\n utils_1.bigIntAndBufferInt64Check('writeBigUInt64BE');\n return this._writeNumberValue(Buffer.prototype.writeBigUInt64BE, 8, value, offset);\n }\n /**\n * Inserts a BigUInt64BE value at the given offset value.\n *\n * @param value { Number } The value to insert.\n * @param offset { Number } The offset to insert the value at.\n *\n * @return this\n */\n insertBigUInt64BE(value, offset) {\n utils_1.bigIntAndBufferInt64Check('writeBigUInt64BE');\n return this._insertNumberValue(Buffer.prototype.writeBigUInt64BE, 8, value, offset);\n }\n /**\n * Writes a BigUInt64LE value to the current write position (or at optional offset).\n *\n * @param value { Number } The value to write.\n * @param offset { Number } The offset to write the value at.\n *\n * @return this\n */\n writeBigUInt64LE(value, offset) {\n utils_1.bigIntAndBufferInt64Check('writeBigUInt64LE');\n return this._writeNumberValue(Buffer.prototype.writeBigUInt64LE, 8, value, offset);\n }\n /**\n * Inserts a BigUInt64LE value at the given offset value.\n *\n * @param value { Number } The value to insert.\n * @param offset { Number } The offset to insert the value at.\n *\n * @return this\n */\n insertBigUInt64LE(value, offset) {\n utils_1.bigIntAndBufferInt64Check('writeBigUInt64LE');\n return this._insertNumberValue(Buffer.prototype.writeBigUInt64LE, 8, value, offset);\n }\n // Floating Point\n /**\n * Reads an FloatBE value from the current read position or an optionally provided offset.\n *\n * @param offset { Number } The offset to read data from (optional)\n * @return { Number }\n */\n readFloatBE(offset) {\n return this._readNumberValue(Buffer.prototype.readFloatBE, 4, offset);\n }\n /**\n * Reads an FloatLE value from the current read position or an optionally provided offset.\n *\n * @param offset { Number } The offset to read data from (optional)\n * @return { Number }\n */\n readFloatLE(offset) {\n return this._readNumberValue(Buffer.prototype.readFloatLE, 4, offset);\n }\n /**\n * Writes a FloatBE value to the current write position (or at optional offset).\n *\n * @param value { Number } The value to write.\n * @param offset { Number } The offset to write the value at.\n *\n * @return this\n */\n writeFloatBE(value, offset) {\n return this._writeNumberValue(Buffer.prototype.writeFloatBE, 4, value, offset);\n }\n /**\n * Inserts a FloatBE value at the given offset value.\n *\n * @param value { Number } The value to insert.\n * @param offset { Number } The offset to insert the value at.\n *\n * @return this\n */\n insertFloatBE(value, offset) {\n return this._insertNumberValue(Buffer.prototype.writeFloatBE, 4, value, offset);\n }\n /**\n * Writes a FloatLE value to the current write position (or at optional offset).\n *\n * @param value { Number } The value to write.\n * @param offset { Number } The offset to write the value at.\n *\n * @return this\n */\n writeFloatLE(value, offset) {\n return this._writeNumberValue(Buffer.prototype.writeFloatLE, 4, value, offset);\n }\n /**\n * Inserts a FloatLE value at the given offset value.\n *\n * @param value { Number } The value to insert.\n * @param offset { Number } The offset to insert the value at.\n *\n * @return this\n */\n insertFloatLE(value, offset) {\n return this._insertNumberValue(Buffer.prototype.writeFloatLE, 4, value, offset);\n }\n // Double Floating Point\n /**\n * Reads an DoublEBE value from the current read position or an optionally provided offset.\n *\n * @param offset { Number } The offset to read data from (optional)\n * @return { Number }\n */\n readDoubleBE(offset) {\n return this._readNumberValue(Buffer.prototype.readDoubleBE, 8, offset);\n }\n /**\n * Reads an DoubleLE value from the current read position or an optionally provided offset.\n *\n * @param offset { Number } The offset to read data from (optional)\n * @return { Number }\n */\n readDoubleLE(offset) {\n return this._readNumberValue(Buffer.prototype.readDoubleLE, 8, offset);\n }\n /**\n * Writes a DoubleBE value to the current write position (or at optional offset).\n *\n * @param value { Number } The value to write.\n * @param offset { Number } The offset to write the value at.\n *\n * @return this\n */\n writeDoubleBE(value, offset) {\n return this._writeNumberValue(Buffer.prototype.writeDoubleBE, 8, value, offset);\n }\n /**\n * Inserts a DoubleBE value at the given offset value.\n *\n * @param value { Number } The value to insert.\n * @param offset { Number } The offset to insert the value at.\n *\n * @return this\n */\n insertDoubleBE(value, offset) {\n return this._insertNumberValue(Buffer.prototype.writeDoubleBE, 8, value, offset);\n }\n /**\n * Writes a DoubleLE value to the current write position (or at optional offset).\n *\n * @param value { Number } The value to write.\n * @param offset { Number } The offset to write the value at.\n *\n * @return this\n */\n writeDoubleLE(value, offset) {\n return this._writeNumberValue(Buffer.prototype.writeDoubleLE, 8, value, offset);\n }\n /**\n * Inserts a DoubleLE value at the given offset value.\n *\n * @param value { Number } The value to insert.\n * @param offset { Number } The offset to insert the value at.\n *\n * @return this\n */\n insertDoubleLE(value, offset) {\n return this._insertNumberValue(Buffer.prototype.writeDoubleLE, 8, value, offset);\n }\n // Strings\n /**\n * Reads a String from the current read position.\n *\n * @param arg1 { Number | String } The number of bytes to read as a String, or the BufferEncoding to use for\n * the string (Defaults to instance level encoding).\n * @param encoding { String } The BufferEncoding to use for the string (Defaults to instance level encoding).\n *\n * @return { String }\n */\n readString(arg1, encoding) {\n let lengthVal;\n // Length provided\n if (typeof arg1 === 'number') {\n utils_1.checkLengthValue(arg1);\n lengthVal = Math.min(arg1, this.length - this._readOffset);\n }\n else {\n encoding = arg1;\n lengthVal = this.length - this._readOffset;\n }\n // Check encoding\n if (typeof encoding !== 'undefined') {\n utils_1.checkEncoding(encoding);\n }\n const value = this._buff.slice(this._readOffset, this._readOffset + lengthVal).toString(encoding || this._encoding);\n this._readOffset += lengthVal;\n return value;\n }\n /**\n * Inserts a String\n *\n * @param value { String } The String value to insert.\n * @param offset { Number } The offset to insert the string at.\n * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).\n *\n * @return this\n */\n insertString(value, offset, encoding) {\n utils_1.checkOffsetValue(offset);\n return this._handleString(value, true, offset, encoding);\n }\n /**\n * Writes a String\n *\n * @param value { String } The String value to write.\n * @param arg2 { Number | String } The offset to write the string at, or the BufferEncoding to use.\n * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).\n *\n * @return this\n */\n writeString(value, arg2, encoding) {\n return this._handleString(value, false, arg2, encoding);\n }\n /**\n * Reads a null-terminated String from the current read position.\n *\n * @param encoding { String } The BufferEncoding to use for the string (Defaults to instance level encoding).\n *\n * @return { String }\n */\n readStringNT(encoding) {\n if (typeof encoding !== 'undefined') {\n utils_1.checkEncoding(encoding);\n }\n // Set null character position to the end SmartBuffer instance.\n let nullPos = this.length;\n // Find next null character (if one is not found, default from above is used)\n for (let i = this._readOffset; i < this.length; i++) {\n if (this._buff[i] === 0x00) {\n nullPos = i;\n break;\n }\n }\n // Read string value\n const value = this._buff.slice(this._readOffset, nullPos);\n // Increment internal Buffer read offset\n this._readOffset = nullPos + 1;\n return value.toString(encoding || this._encoding);\n }\n /**\n * Inserts a null-terminated String.\n *\n * @param value { String } The String value to write.\n * @param arg2 { Number | String } The offset to write the string to, or the BufferEncoding to use.\n * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).\n *\n * @return this\n */\n insertStringNT(value, offset, encoding) {\n utils_1.checkOffsetValue(offset);\n // Write Values\n this.insertString(value, offset, encoding);\n this.insertUInt8(0x00, offset + value.length);\n return this;\n }\n /**\n * Writes a null-terminated String.\n *\n * @param value { String } The String value to write.\n * @param arg2 { Number | String } The offset to write the string to, or the BufferEncoding to use.\n * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).\n *\n * @return this\n */\n writeStringNT(value, arg2, encoding) {\n // Write Values\n this.writeString(value, arg2, encoding);\n this.writeUInt8(0x00, typeof arg2 === 'number' ? arg2 + value.length : this.writeOffset);\n return this;\n }\n // Buffers\n /**\n * Reads a Buffer from the internal read position.\n *\n * @param length { Number } The length of data to read as a Buffer.\n *\n * @return { Buffer }\n */\n readBuffer(length) {\n if (typeof length !== 'undefined') {\n utils_1.checkLengthValue(length);\n }\n const lengthVal = typeof length === 'number' ? length : this.length;\n const endPoint = Math.min(this.length, this._readOffset + lengthVal);\n // Read buffer value\n const value = this._buff.slice(this._readOffset, endPoint);\n // Increment internal Buffer read offset\n this._readOffset = endPoint;\n return value;\n }\n /**\n * Writes a Buffer to the current write position.\n *\n * @param value { Buffer } The Buffer to write.\n * @param offset { Number } The offset to write the Buffer to.\n *\n * @return this\n */\n insertBuffer(value, offset) {\n utils_1.checkOffsetValue(offset);\n return this._handleBuffer(value, true, offset);\n }\n /**\n * Writes a Buffer to the current write position.\n *\n * @param value { Buffer } The Buffer to write.\n * @param offset { Number } The offset to write the Buffer to.\n *\n * @return this\n */\n writeBuffer(value, offset) {\n return this._handleBuffer(value, false, offset);\n }\n /**\n * Reads a null-terminated Buffer from the current read poisiton.\n *\n * @return { Buffer }\n */\n readBufferNT() {\n // Set null character position to the end SmartBuffer instance.\n let nullPos = this.length;\n // Find next null character (if one is not found, default from above is used)\n for (let i = this._readOffset; i < this.length; i++) {\n if (this._buff[i] === 0x00) {\n nullPos = i;\n break;\n }\n }\n // Read value\n const value = this._buff.slice(this._readOffset, nullPos);\n // Increment internal Buffer read offset\n this._readOffset = nullPos + 1;\n return value;\n }\n /**\n * Inserts a null-terminated Buffer.\n *\n * @param value { Buffer } The Buffer to write.\n * @param offset { Number } The offset to write the Buffer to.\n *\n * @return this\n */\n insertBufferNT(value, offset) {\n utils_1.checkOffsetValue(offset);\n // Write Values\n this.insertBuffer(value, offset);\n this.insertUInt8(0x00, offset + value.length);\n return this;\n }\n /**\n * Writes a null-terminated Buffer.\n *\n * @param value { Buffer } The Buffer to write.\n * @param offset { Number } The offset to write the Buffer to.\n *\n * @return this\n */\n writeBufferNT(value, offset) {\n // Checks for valid numberic value;\n if (typeof offset !== 'undefined') {\n utils_1.checkOffsetValue(offset);\n }\n // Write Values\n this.writeBuffer(value, offset);\n this.writeUInt8(0x00, typeof offset === 'number' ? offset + value.length : this._writeOffset);\n return this;\n }\n /**\n * Clears the SmartBuffer instance to its original empty state.\n */\n clear() {\n this._writeOffset = 0;\n this._readOffset = 0;\n this.length = 0;\n return this;\n }\n /**\n * Gets the remaining data left to be read from the SmartBuffer instance.\n *\n * @return { Number }\n */\n remaining() {\n return this.length - this._readOffset;\n }\n /**\n * Gets the current read offset value of the SmartBuffer instance.\n *\n * @return { Number }\n */\n get readOffset() {\n return this._readOffset;\n }\n /**\n * Sets the read offset value of the SmartBuffer instance.\n *\n * @param offset { Number } - The offset value to set.\n */\n set readOffset(offset) {\n utils_1.checkOffsetValue(offset);\n // Check for bounds.\n utils_1.checkTargetOffset(offset, this);\n this._readOffset = offset;\n }\n /**\n * Gets the current write offset value of the SmartBuffer instance.\n *\n * @return { Number }\n */\n get writeOffset() {\n return this._writeOffset;\n }\n /**\n * Sets the write offset value of the SmartBuffer instance.\n *\n * @param offset { Number } - The offset value to set.\n */\n set writeOffset(offset) {\n utils_1.checkOffsetValue(offset);\n // Check for bounds.\n utils_1.checkTargetOffset(offset, this);\n this._writeOffset = offset;\n }\n /**\n * Gets the currently set string encoding of the SmartBuffer instance.\n *\n * @return { BufferEncoding } The string Buffer encoding currently set.\n */\n get encoding() {\n return this._encoding;\n }\n /**\n * Sets the string encoding of the SmartBuffer instance.\n *\n * @param encoding { BufferEncoding } The string Buffer encoding to set.\n */\n set encoding(encoding) {\n utils_1.checkEncoding(encoding);\n this._encoding = encoding;\n }\n /**\n * Gets the underlying internal Buffer. (This includes unmanaged data in the Buffer)\n *\n * @return { Buffer } The Buffer value.\n */\n get internalBuffer() {\n return this._buff;\n }\n /**\n * Gets the value of the internal managed Buffer (Includes managed data only)\n *\n * @param { Buffer }\n */\n toBuffer() {\n return this._buff.slice(0, this.length);\n }\n /**\n * Gets the String value of the internal managed Buffer\n *\n * @param encoding { String } The BufferEncoding to display the Buffer as (defaults to instance level encoding).\n */\n toString(encoding) {\n const encodingVal = typeof encoding === 'string' ? encoding : this._encoding;\n // Check for invalid encoding.\n utils_1.checkEncoding(encodingVal);\n return this._buff.toString(encodingVal, 0, this.length);\n }\n /**\n * Destroys the SmartBuffer instance.\n */\n destroy() {\n this.clear();\n return this;\n }\n /**\n * Handles inserting and writing strings.\n *\n * @param value { String } The String value to insert.\n * @param isInsert { Boolean } True if inserting a string, false if writing.\n * @param arg2 { Number | String } The offset to insert the string at, or the BufferEncoding to use.\n * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).\n */\n _handleString(value, isInsert, arg3, encoding) {\n let offsetVal = this._writeOffset;\n let encodingVal = this._encoding;\n // Check for offset\n if (typeof arg3 === 'number') {\n offsetVal = arg3;\n // Check for encoding\n }\n else if (typeof arg3 === 'string') {\n utils_1.checkEncoding(arg3);\n encodingVal = arg3;\n }\n // Check for encoding (third param)\n if (typeof encoding === 'string') {\n utils_1.checkEncoding(encoding);\n encodingVal = encoding;\n }\n // Calculate bytelength of string.\n const byteLength = Buffer.byteLength(value, encodingVal);\n // Ensure there is enough internal Buffer capacity.\n if (isInsert) {\n this.ensureInsertable(byteLength, offsetVal);\n }\n else {\n this._ensureWriteable(byteLength, offsetVal);\n }\n // Write value\n this._buff.write(value, offsetVal, byteLength, encodingVal);\n // Increment internal Buffer write offset;\n if (isInsert) {\n this._writeOffset += byteLength;\n }\n else {\n // If an offset was given, check to see if we wrote beyond the current writeOffset.\n if (typeof arg3 === 'number') {\n this._writeOffset = Math.max(this._writeOffset, offsetVal + byteLength);\n }\n else {\n // If no offset was given, we wrote to the end of the SmartBuffer so increment writeOffset.\n this._writeOffset += byteLength;\n }\n }\n return this;\n }\n /**\n * Handles writing or insert of a Buffer.\n *\n * @param value { Buffer } The Buffer to write.\n * @param offset { Number } The offset to write the Buffer to.\n */\n _handleBuffer(value, isInsert, offset) {\n const offsetVal = typeof offset === 'number' ? offset : this._writeOffset;\n // Ensure there is enough internal Buffer capacity.\n if (isInsert) {\n this.ensureInsertable(value.length, offsetVal);\n }\n else {\n this._ensureWriteable(value.length, offsetVal);\n }\n // Write buffer value\n value.copy(this._buff, offsetVal);\n // Increment internal Buffer write offset;\n if (isInsert) {\n this._writeOffset += value.length;\n }\n else {\n // If an offset was given, check to see if we wrote beyond the current writeOffset.\n if (typeof offset === 'number') {\n this._writeOffset = Math.max(this._writeOffset, offsetVal + value.length);\n }\n else {\n // If no offset was given, we wrote to the end of the SmartBuffer so increment writeOffset.\n this._writeOffset += value.length;\n }\n }\n return this;\n }\n /**\n * Ensures that the internal Buffer is large enough to read data.\n *\n * @param length { Number } The length of the data that needs to be read.\n * @param offset { Number } The offset of the data that needs to be read.\n */\n ensureReadable(length, offset) {\n // Offset value defaults to managed read offset.\n let offsetVal = this._readOffset;\n // If an offset was provided, use it.\n if (typeof offset !== 'undefined') {\n // Checks for valid numberic value;\n utils_1.checkOffsetValue(offset);\n // Overide with custom offset.\n offsetVal = offset;\n }\n // Checks if offset is below zero, or the offset+length offset is beyond the total length of the managed data.\n if (offsetVal < 0 || offsetVal + length > this.length) {\n throw new Error(utils_1.ERRORS.INVALID_READ_BEYOND_BOUNDS);\n }\n }\n /**\n * Ensures that the internal Buffer is large enough to insert data.\n *\n * @param dataLength { Number } The length of the data that needs to be written.\n * @param offset { Number } The offset of the data to be written.\n */\n ensureInsertable(dataLength, offset) {\n // Checks for valid numberic value;\n utils_1.checkOffsetValue(offset);\n // Ensure there is enough internal Buffer capacity.\n this._ensureCapacity(this.length + dataLength);\n // If an offset was provided and its not the very end of the buffer, copy data into appropriate location in regards to the offset.\n if (offset < this.length) {\n this._buff.copy(this._buff, offset + dataLength, offset, this._buff.length);\n }\n // Adjust tracked smart buffer length\n if (offset + dataLength > this.length) {\n this.length = offset + dataLength;\n }\n else {\n this.length += dataLength;\n }\n }\n /**\n * Ensures that the internal Buffer is large enough to write data.\n *\n * @param dataLength { Number } The length of the data that needs to be written.\n * @param offset { Number } The offset of the data to be written (defaults to writeOffset).\n */\n _ensureWriteable(dataLength, offset) {\n const offsetVal = typeof offset === 'number' ? offset : this._writeOffset;\n // Ensure enough capacity to write data.\n this._ensureCapacity(offsetVal + dataLength);\n // Adjust SmartBuffer length (if offset + length is larger than managed length, adjust length)\n if (offsetVal + dataLength > this.length) {\n this.length = offsetVal + dataLength;\n }\n }\n /**\n * Ensures that the internal Buffer is large enough to write at least the given amount of data.\n *\n * @param minLength { Number } The minimum length of the data needs to be written.\n */\n _ensureCapacity(minLength) {\n const oldLength = this._buff.length;\n if (minLength > oldLength) {\n let data = this._buff;\n let newLength = (oldLength * 3) / 2 + 1;\n if (newLength < minLength) {\n newLength = minLength;\n }\n this._buff = Buffer.allocUnsafe(newLength);\n data.copy(this._buff, 0, 0, oldLength);\n }\n }\n /**\n * Reads a numeric number value using the provided function.\n *\n * @typeparam T { number | bigint } The type of the value to be read\n *\n * @param func { Function(offset: number) => number } The function to read data on the internal Buffer with.\n * @param byteSize { Number } The number of bytes read.\n * @param offset { Number } The offset to read from (optional). When this is not provided, the managed readOffset is used instead.\n *\n * @returns { T } the number value\n */\n _readNumberValue(func, byteSize, offset) {\n this.ensureReadable(byteSize, offset);\n // Call Buffer.readXXXX();\n const value = func.call(this._buff, typeof offset === 'number' ? offset : this._readOffset);\n // Adjust internal read offset if an optional read offset was not provided.\n if (typeof offset === 'undefined') {\n this._readOffset += byteSize;\n }\n return value;\n }\n /**\n * Inserts a numeric number value based on the given offset and value.\n *\n * @typeparam T { number | bigint } The type of the value to be written\n *\n * @param func { Function(offset: T, offset?) => number} The function to write data on the internal Buffer with.\n * @param byteSize { Number } The number of bytes written.\n * @param value { T } The number value to write.\n * @param offset { Number } the offset to write the number at (REQUIRED).\n *\n * @returns SmartBuffer this buffer\n */\n _insertNumberValue(func, byteSize, value, offset) {\n // Check for invalid offset values.\n utils_1.checkOffsetValue(offset);\n // Ensure there is enough internal Buffer capacity. (raw offset is passed)\n this.ensureInsertable(byteSize, offset);\n // Call buffer.writeXXXX();\n func.call(this._buff, value, offset);\n // Adjusts internally managed write offset.\n this._writeOffset += byteSize;\n return this;\n }\n /**\n * Writes a numeric number value based on the given offset and value.\n *\n * @typeparam T { number | bigint } The type of the value to be written\n *\n * @param func { Function(offset: T, offset?) => number} The function to write data on the internal Buffer with.\n * @param byteSize { Number } The number of bytes written.\n * @param value { T } The number value to write.\n * @param offset { Number } the offset to write the number at (REQUIRED).\n *\n * @returns SmartBuffer this buffer\n */\n _writeNumberValue(func, byteSize, value, offset) {\n // If an offset was provided, validate it.\n if (typeof offset === 'number') {\n // Check if we're writing beyond the bounds of the managed data.\n if (offset < 0) {\n throw new Error(utils_1.ERRORS.INVALID_WRITE_BEYOND_BOUNDS);\n }\n utils_1.checkOffsetValue(offset);\n }\n // Default to writeOffset if no offset value was given.\n const offsetVal = typeof offset === 'number' ? offset : this._writeOffset;\n // Ensure there is enough internal Buffer capacity. (raw offset is passed)\n this._ensureWriteable(byteSize, offsetVal);\n func.call(this._buff, value, offsetVal);\n // If an offset was given, check to see if we wrote beyond the current writeOffset.\n if (typeof offset === 'number') {\n this._writeOffset = Math.max(this._writeOffset, offsetVal + byteSize);\n }\n else {\n // If no numeric offset was given, we wrote to the end of the SmartBuffer so increment writeOffset.\n this._writeOffset += byteSize;\n }\n return this;\n }\n}\nexports.SmartBuffer = SmartBuffer;\n//# sourceMappingURL=smartbuffer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SOCKS5_NO_ACCEPTABLE_AUTH = exports.SOCKS5_CUSTOM_AUTH_END = exports.SOCKS5_CUSTOM_AUTH_START = exports.SOCKS_INCOMING_PACKET_SIZES = exports.SocksClientState = exports.Socks5Response = exports.Socks5HostType = exports.Socks5Auth = exports.Socks4Response = exports.SocksCommand = exports.ERRORS = exports.DEFAULT_TIMEOUT = void 0;\nconst DEFAULT_TIMEOUT = 30000;\nexports.DEFAULT_TIMEOUT = DEFAULT_TIMEOUT;\n// prettier-ignore\nconst ERRORS = {\n InvalidSocksCommand: 'An invalid SOCKS command was provided. Valid options are connect, bind, and associate.',\n InvalidSocksCommandForOperation: 'An invalid SOCKS command was provided. Only a subset of commands are supported for this operation.',\n InvalidSocksCommandChain: 'An invalid SOCKS command was provided. Chaining currently only supports the connect command.',\n InvalidSocksClientOptionsDestination: 'An invalid destination host was provided.',\n InvalidSocksClientOptionsExistingSocket: 'An invalid existing socket was provided. This should be an instance of stream.Duplex.',\n InvalidSocksClientOptionsProxy: 'Invalid SOCKS proxy details were provided.',\n InvalidSocksClientOptionsTimeout: 'An invalid timeout value was provided. Please enter a value above 0 (in ms).',\n InvalidSocksClientOptionsProxiesLength: 'At least two socks proxies must be provided for chaining.',\n InvalidSocksClientOptionsCustomAuthRange: 'Custom auth must be a value between 0x80 and 0xFE.',\n InvalidSocksClientOptionsCustomAuthOptions: 'When a custom_auth_method is provided, custom_auth_request_handler, custom_auth_response_size, and custom_auth_response_handler must also be provided and valid.',\n NegotiationError: 'Negotiation error',\n SocketClosed: 'Socket closed',\n ProxyConnectionTimedOut: 'Proxy connection timed out',\n InternalError: 'SocksClient internal error (this should not happen)',\n InvalidSocks4HandshakeResponse: 'Received invalid Socks4 handshake response',\n Socks4ProxyRejectedConnection: 'Socks4 Proxy rejected connection',\n InvalidSocks4IncomingConnectionResponse: 'Socks4 invalid incoming connection response',\n Socks4ProxyRejectedIncomingBoundConnection: 'Socks4 Proxy rejected incoming bound connection',\n InvalidSocks5InitialHandshakeResponse: 'Received invalid Socks5 initial handshake response',\n InvalidSocks5IntiailHandshakeSocksVersion: 'Received invalid Socks5 initial handshake (invalid socks version)',\n InvalidSocks5InitialHandshakeNoAcceptedAuthType: 'Received invalid Socks5 initial handshake (no accepted authentication type)',\n InvalidSocks5InitialHandshakeUnknownAuthType: 'Received invalid Socks5 initial handshake (unknown authentication type)',\n Socks5AuthenticationFailed: 'Socks5 Authentication failed',\n InvalidSocks5FinalHandshake: 'Received invalid Socks5 final handshake response',\n InvalidSocks5FinalHandshakeRejected: 'Socks5 proxy rejected connection',\n InvalidSocks5IncomingConnectionResponse: 'Received invalid Socks5 incoming connection response',\n Socks5ProxyRejectedIncomingBoundConnection: 'Socks5 Proxy rejected incoming bound connection',\n};\nexports.ERRORS = ERRORS;\nconst SOCKS_INCOMING_PACKET_SIZES = {\n Socks5InitialHandshakeResponse: 2,\n Socks5UserPassAuthenticationResponse: 2,\n // Command response + incoming connection (bind)\n Socks5ResponseHeader: 5, // We need at least 5 to read the hostname length, then we wait for the address+port information.\n Socks5ResponseIPv4: 10, // 4 header + 4 ip + 2 port\n Socks5ResponseIPv6: 22, // 4 header + 16 ip + 2 port\n Socks5ResponseHostname: (hostNameLength) => hostNameLength + 7, // 4 header + 1 host length + host + 2 port\n // Command response + incoming connection (bind)\n Socks4Response: 8, // 2 header + 2 port + 4 ip\n};\nexports.SOCKS_INCOMING_PACKET_SIZES = SOCKS_INCOMING_PACKET_SIZES;\nvar SocksCommand;\n(function (SocksCommand) {\n SocksCommand[SocksCommand[\"connect\"] = 1] = \"connect\";\n SocksCommand[SocksCommand[\"bind\"] = 2] = \"bind\";\n SocksCommand[SocksCommand[\"associate\"] = 3] = \"associate\";\n})(SocksCommand || (exports.SocksCommand = SocksCommand = {}));\nvar Socks4Response;\n(function (Socks4Response) {\n Socks4Response[Socks4Response[\"Granted\"] = 90] = \"Granted\";\n Socks4Response[Socks4Response[\"Failed\"] = 91] = \"Failed\";\n Socks4Response[Socks4Response[\"Rejected\"] = 92] = \"Rejected\";\n Socks4Response[Socks4Response[\"RejectedIdent\"] = 93] = \"RejectedIdent\";\n})(Socks4Response || (exports.Socks4Response = Socks4Response = {}));\nvar Socks5Auth;\n(function (Socks5Auth) {\n Socks5Auth[Socks5Auth[\"NoAuth\"] = 0] = \"NoAuth\";\n Socks5Auth[Socks5Auth[\"GSSApi\"] = 1] = \"GSSApi\";\n Socks5Auth[Socks5Auth[\"UserPass\"] = 2] = \"UserPass\";\n})(Socks5Auth || (exports.Socks5Auth = Socks5Auth = {}));\nconst SOCKS5_CUSTOM_AUTH_START = 0x80;\nexports.SOCKS5_CUSTOM_AUTH_START = SOCKS5_CUSTOM_AUTH_START;\nconst SOCKS5_CUSTOM_AUTH_END = 0xfe;\nexports.SOCKS5_CUSTOM_AUTH_END = SOCKS5_CUSTOM_AUTH_END;\nconst SOCKS5_NO_ACCEPTABLE_AUTH = 0xff;\nexports.SOCKS5_NO_ACCEPTABLE_AUTH = SOCKS5_NO_ACCEPTABLE_AUTH;\nvar Socks5Response;\n(function (Socks5Response) {\n Socks5Response[Socks5Response[\"Granted\"] = 0] = \"Granted\";\n Socks5Response[Socks5Response[\"Failure\"] = 1] = \"Failure\";\n Socks5Response[Socks5Response[\"NotAllowed\"] = 2] = \"NotAllowed\";\n Socks5Response[Socks5Response[\"NetworkUnreachable\"] = 3] = \"NetworkUnreachable\";\n Socks5Response[Socks5Response[\"HostUnreachable\"] = 4] = \"HostUnreachable\";\n Socks5Response[Socks5Response[\"ConnectionRefused\"] = 5] = \"ConnectionRefused\";\n Socks5Response[Socks5Response[\"TTLExpired\"] = 6] = \"TTLExpired\";\n Socks5Response[Socks5Response[\"CommandNotSupported\"] = 7] = \"CommandNotSupported\";\n Socks5Response[Socks5Response[\"AddressNotSupported\"] = 8] = \"AddressNotSupported\";\n})(Socks5Response || (exports.Socks5Response = Socks5Response = {}));\nvar Socks5HostType;\n(function (Socks5HostType) {\n Socks5HostType[Socks5HostType[\"IPv4\"] = 1] = \"IPv4\";\n Socks5HostType[Socks5HostType[\"Hostname\"] = 3] = \"Hostname\";\n Socks5HostType[Socks5HostType[\"IPv6\"] = 4] = \"IPv6\";\n})(Socks5HostType || (exports.Socks5HostType = Socks5HostType = {}));\nvar SocksClientState;\n(function (SocksClientState) {\n SocksClientState[SocksClientState[\"Created\"] = 0] = \"Created\";\n SocksClientState[SocksClientState[\"Connecting\"] = 1] = \"Connecting\";\n SocksClientState[SocksClientState[\"Connected\"] = 2] = \"Connected\";\n SocksClientState[SocksClientState[\"SentInitialHandshake\"] = 3] = \"SentInitialHandshake\";\n SocksClientState[SocksClientState[\"ReceivedInitialHandshakeResponse\"] = 4] = \"ReceivedInitialHandshakeResponse\";\n SocksClientState[SocksClientState[\"SentAuthentication\"] = 5] = \"SentAuthentication\";\n SocksClientState[SocksClientState[\"ReceivedAuthenticationResponse\"] = 6] = \"ReceivedAuthenticationResponse\";\n SocksClientState[SocksClientState[\"SentFinalHandshake\"] = 7] = \"SentFinalHandshake\";\n SocksClientState[SocksClientState[\"ReceivedFinalResponse\"] = 8] = \"ReceivedFinalResponse\";\n SocksClientState[SocksClientState[\"BoundWaitingForConnection\"] = 9] = \"BoundWaitingForConnection\";\n SocksClientState[SocksClientState[\"Established\"] = 10] = \"Established\";\n SocksClientState[SocksClientState[\"Disconnected\"] = 11] = \"Disconnected\";\n SocksClientState[SocksClientState[\"Error\"] = 99] = \"Error\";\n})(SocksClientState || (exports.SocksClientState = SocksClientState = {}));\n//# sourceMappingURL=constants.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shuffleArray = exports.SocksClientError = void 0;\n/**\n * Error wrapper for SocksClient\n */\nclass SocksClientError extends Error {\n constructor(message, options) {\n super(message);\n this.options = options;\n }\n}\nexports.SocksClientError = SocksClientError;\n/**\n * Shuffles a given array.\n * @param array The array to shuffle.\n */\nfunction shuffleArray(array) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [array[i], array[j]] = [array[j], array[i]];\n }\n}\nexports.shuffleArray = shuffleArray;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCorrect = exports.isInSubnet = void 0;\nfunction isInSubnet(address) {\n if (this.subnetMask < address.subnetMask) {\n return false;\n }\n if (this.mask(address.subnetMask) === address.mask()) {\n return true;\n }\n return false;\n}\nexports.isInSubnet = isInSubnet;\nfunction isCorrect(defaultBits) {\n return function () {\n if (this.addressMinusSuffix !== this.correctForm()) {\n return false;\n }\n if (this.subnetMask === defaultBits && !this.parsedSubnet) {\n return true;\n }\n return this.parsedSubnet === String(this.subnetMask);\n };\n}\nexports.isCorrect = isCorrect;\n//# sourceMappingURL=common.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RE_SUBNET_STRING = exports.RE_ADDRESS = exports.GROUPS = exports.BITS = void 0;\nexports.BITS = 32;\nexports.GROUPS = 4;\nexports.RE_ADDRESS = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/g;\nexports.RE_SUBNET_STRING = /\\/\\d{1,2}$/;\n//# sourceMappingURL=constants.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AddressError = void 0;\nclass AddressError extends Error {\n constructor(message, parseMessage) {\n super(message);\n this.name = 'AddressError';\n if (parseMessage !== null) {\n this.parseMessage = parseMessage;\n }\n }\n}\nexports.AddressError = AddressError;\n//# sourceMappingURL=address-error.js.map","(function(){\n\n // Copyright (c) 2005 Tom Wu\n // All Rights Reserved.\n // See \"LICENSE\" for details.\n\n // Basic JavaScript BN library - subset useful for RSA encryption.\n\n // Bits per digit\n var dbits;\n\n // JavaScript engine analysis\n var canary = 0xdeadbeefcafe;\n var j_lm = ((canary&0xffffff)==0xefcafe);\n\n // (public) Constructor\n function BigInteger(a,b,c) {\n if(a != null)\n if(\"number\" == typeof a) this.fromNumber(a,b,c);\n else if(b == null && \"string\" != typeof a) this.fromString(a,256);\n else this.fromString(a,b);\n }\n\n // return new, unset BigInteger\n function nbi() { return new BigInteger(null); }\n\n // am: Compute w_j += (x*this_i), propagate carries,\n // c is initial carry, returns final carry.\n // c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n // We need to select the fastest one that works in this environment.\n\n // am1: use a single mult and divide to get the high bits,\n // max digit bits should be 26 because\n // max internal value = 2*dvalue^2-2*dvalue (< 2^53)\n function am1(i,x,w,j,c,n) {\n while(--n >= 0) {\n var v = x*this[i++]+w[j]+c;\n c = Math.floor(v/0x4000000);\n w[j++] = v&0x3ffffff;\n }\n return c;\n }\n // am2 avoids a big mult-and-extract completely.\n // Max digit bits should be <= 30 because we do bitwise ops\n // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\n function am2(i,x,w,j,c,n) {\n var xl = x&0x7fff, xh = x>>15;\n while(--n >= 0) {\n var l = this[i]&0x7fff;\n var h = this[i++]>>15;\n var m = xh*l+h*xl;\n l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);\n c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);\n w[j++] = l&0x3fffffff;\n }\n return c;\n }\n // Alternately, set max digit bits to 28 since some\n // browsers slow down when dealing with 32-bit numbers.\n function am3(i,x,w,j,c,n) {\n var xl = x&0x3fff, xh = x>>14;\n while(--n >= 0) {\n var l = this[i]&0x3fff;\n var h = this[i++]>>14;\n var m = xh*l+h*xl;\n l = xl*l+((m&0x3fff)<<14)+w[j]+c;\n c = (l>>28)+(m>>14)+xh*h;\n w[j++] = l&0xfffffff;\n }\n return c;\n }\n var inBrowser = typeof navigator !== \"undefined\";\n if(inBrowser && j_lm && (navigator.appName == \"Microsoft Internet Explorer\")) {\n BigInteger.prototype.am = am2;\n dbits = 30;\n }\n else if(inBrowser && j_lm && (navigator.appName != \"Netscape\")) {\n BigInteger.prototype.am = am1;\n dbits = 26;\n }\n else { // Mozilla/Netscape seems to prefer am3\n BigInteger.prototype.am = am3;\n dbits = 28;\n }\n\n BigInteger.prototype.DB = dbits;\n BigInteger.prototype.DM = ((1<= 0; --i) r[i] = this[i];\n r.t = this.t;\n r.s = this.s;\n }\n\n // (protected) set from integer value x, -DV <= x < DV\n function bnpFromInt(x) {\n this.t = 1;\n this.s = (x<0)?-1:0;\n if(x > 0) this[0] = x;\n else if(x < -1) this[0] = x+this.DV;\n else this.t = 0;\n }\n\n // return bigint initialized to value\n function nbv(i) { var r = nbi(); r.fromInt(i); return r; }\n\n // (protected) set from string and radix\n function bnpFromString(s,b) {\n var k;\n if(b == 16) k = 4;\n else if(b == 8) k = 3;\n else if(b == 256) k = 8; // byte array\n else if(b == 2) k = 1;\n else if(b == 32) k = 5;\n else if(b == 4) k = 2;\n else { this.fromRadix(s,b); return; }\n this.t = 0;\n this.s = 0;\n var i = s.length, mi = false, sh = 0;\n while(--i >= 0) {\n var x = (k==8)?s[i]&0xff:intAt(s,i);\n if(x < 0) {\n if(s.charAt(i) == \"-\") mi = true;\n continue;\n }\n mi = false;\n if(sh == 0)\n this[this.t++] = x;\n else if(sh+k > this.DB) {\n this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<>(this.DB-sh));\n }\n else\n this[this.t-1] |= x<= this.DB) sh -= this.DB;\n }\n if(k == 8 && (s[0]&0x80) != 0) {\n this.s = -1;\n if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)< 0 && this[this.t-1] == c) --this.t;\n }\n\n // (public) return string representation in given radix\n function bnToString(b) {\n if(this.s < 0) return \"-\"+this.negate().toString(b);\n var k;\n if(b == 16) k = 4;\n else if(b == 8) k = 3;\n else if(b == 2) k = 1;\n else if(b == 32) k = 5;\n else if(b == 4) k = 2;\n else return this.toRadix(b);\n var km = (1< 0) {\n if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); }\n while(i >= 0) {\n if(p < k) {\n d = (this[i]&((1<>(p+=this.DB-k);\n }\n else {\n d = (this[i]>>(p-=k))&km;\n if(p <= 0) { p += this.DB; --i; }\n }\n if(d > 0) m = true;\n if(m) r += int2char(d);\n }\n }\n return m?r:\"0\";\n }\n\n // (public) -this\n function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }\n\n // (public) |this|\n function bnAbs() { return (this.s<0)?this.negate():this; }\n\n // (public) return + if this > a, - if this < a, 0 if equal\n function bnCompareTo(a) {\n var r = this.s-a.s;\n if(r != 0) return r;\n var i = this.t;\n r = i-a.t;\n if(r != 0) return (this.s<0)?-r:r;\n while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;\n return 0;\n }\n\n // returns bit length of the integer x\n function nbits(x) {\n var r = 1, t;\n if((t=x>>>16) != 0) { x = t; r += 16; }\n if((t=x>>8) != 0) { x = t; r += 8; }\n if((t=x>>4) != 0) { x = t; r += 4; }\n if((t=x>>2) != 0) { x = t; r += 2; }\n if((t=x>>1) != 0) { x = t; r += 1; }\n return r;\n }\n\n // (public) return the number of bits in \"this\"\n function bnBitLength() {\n if(this.t <= 0) return 0;\n return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));\n }\n\n // (protected) r = this << n*DB\n function bnpDLShiftTo(n,r) {\n var i;\n for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];\n for(i = n-1; i >= 0; --i) r[i] = 0;\n r.t = this.t+n;\n r.s = this.s;\n }\n\n // (protected) r = this >> n*DB\n function bnpDRShiftTo(n,r) {\n for(var i = n; i < this.t; ++i) r[i-n] = this[i];\n r.t = Math.max(this.t-n,0);\n r.s = this.s;\n }\n\n // (protected) r = this << n\n function bnpLShiftTo(n,r) {\n var bs = n%this.DB;\n var cbs = this.DB-bs;\n var bm = (1<= 0; --i) {\n r[i+ds+1] = (this[i]>>cbs)|c;\n c = (this[i]&bm)<= 0; --i) r[i] = 0;\n r[ds] = c;\n r.t = this.t+ds+1;\n r.s = this.s;\n r.clamp();\n }\n\n // (protected) r = this >> n\n function bnpRShiftTo(n,r) {\n r.s = this.s;\n var ds = Math.floor(n/this.DB);\n if(ds >= this.t) { r.t = 0; return; }\n var bs = n%this.DB;\n var cbs = this.DB-bs;\n var bm = (1<>bs;\n for(var i = ds+1; i < this.t; ++i) {\n r[i-ds-1] |= (this[i]&bm)<>bs;\n }\n if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<>= this.DB;\n }\n if(a.t < this.t) {\n c -= a.s;\n while(i < this.t) {\n c += this[i];\n r[i++] = c&this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while(i < a.t) {\n c -= a[i];\n r[i++] = c&this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = (c<0)?-1:0;\n if(c < -1) r[i++] = this.DV+c;\n else if(c > 0) r[i++] = c;\n r.t = i;\n r.clamp();\n }\n\n // (protected) r = this * a, r != this,a (HAC 14.12)\n // \"this\" should be the larger one if appropriate.\n function bnpMultiplyTo(a,r) {\n var x = this.abs(), y = a.abs();\n var i = x.t;\n r.t = i+y.t;\n while(--i >= 0) r[i] = 0;\n for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t);\n r.s = 0;\n r.clamp();\n if(this.s != a.s) BigInteger.ZERO.subTo(r,r);\n }\n\n // (protected) r = this^2, r != this (HAC 14.16)\n function bnpSquareTo(r) {\n var x = this.abs();\n var i = r.t = 2*x.t;\n while(--i >= 0) r[i] = 0;\n for(i = 0; i < x.t-1; ++i) {\n var c = x.am(i,x[i],r,2*i,0,1);\n if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {\n r[i+x.t] -= x.DV;\n r[i+x.t+1] = 1;\n }\n }\n if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1);\n r.s = 0;\n r.clamp();\n }\n\n // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n // r != q, this != m. q or r may be null.\n function bnpDivRemTo(m,q,r) {\n var pm = m.abs();\n if(pm.t <= 0) return;\n var pt = this.abs();\n if(pt.t < pm.t) {\n if(q != null) q.fromInt(0);\n if(r != null) this.copyTo(r);\n return;\n }\n if(r == null) r = nbi();\n var y = nbi(), ts = this.s, ms = m.s;\n var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus\n if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }\n else { pm.copyTo(y); pt.copyTo(r); }\n var ys = y.t;\n var y0 = y[ys-1];\n if(y0 == 0) return;\n var yt = y0*(1<1)?y[ys-2]>>this.F2:0);\n var d1 = this.FV/yt, d2 = (1<= 0) {\n r[r.t++] = 1;\n r.subTo(t,r);\n }\n BigInteger.ONE.dlShiftTo(ys,t);\n t.subTo(y,y); // \"negative\" y so we can replace sub with am later\n while(y.t < ys) y[y.t++] = 0;\n while(--j >= 0) {\n // Estimate quotient digit\n var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);\n if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out\n y.dlShiftTo(j,t);\n r.subTo(t,r);\n while(r[i] < --qd) r.subTo(t,r);\n }\n }\n if(q != null) {\n r.drShiftTo(ys,q);\n if(ts != ms) BigInteger.ZERO.subTo(q,q);\n }\n r.t = ys;\n r.clamp();\n if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder\n if(ts < 0) BigInteger.ZERO.subTo(r,r);\n }\n\n // (public) this mod a\n function bnMod(a) {\n var r = nbi();\n this.abs().divRemTo(a,null,r);\n if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);\n return r;\n }\n\n // Modular reduction using \"classic\" algorithm\n function Classic(m) { this.m = m; }\n function cConvert(x) {\n if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);\n else return x;\n }\n function cRevert(x) { return x; }\n function cReduce(x) { x.divRemTo(this.m,null,x); }\n function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }\n function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }\n\n Classic.prototype.convert = cConvert;\n Classic.prototype.revert = cRevert;\n Classic.prototype.reduce = cReduce;\n Classic.prototype.mulTo = cMulTo;\n Classic.prototype.sqrTo = cSqrTo;\n\n // (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n // justification:\n // xy == 1 (mod m)\n // xy = 1+km\n // xy(2-xy) = (1+km)(1-km)\n // x[y(2-xy)] = 1-k^2m^2\n // x[y(2-xy)] == 1 (mod m^2)\n // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n // JS multiply \"overflows\" differently from C/C++, so care is needed here.\n function bnpInvDigit() {\n if(this.t < 1) return 0;\n var x = this[0];\n if((x&1) == 0) return 0;\n var y = x&3; // y == 1/x mod 2^2\n y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4\n y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8\n y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return (y>0)?this.DV-y:-y;\n }\n\n // Montgomery reduction\n function Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp&0x7fff;\n this.mph = this.mp>>15;\n this.um = (1<<(m.DB-15))-1;\n this.mt2 = 2*m.t;\n }\n\n // xR mod m\n function montConvert(x) {\n var r = nbi();\n x.abs().dlShiftTo(this.m.t,r);\n r.divRemTo(this.m,null,r);\n if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);\n return r;\n }\n\n // x/R mod m\n function montRevert(x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n }\n\n // x = x/R mod m (HAC 14.32)\n function montReduce(x) {\n while(x.t <= this.mt2) // pad x so am has enough room later\n x[x.t++] = 0;\n for(var i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x[i]*mp mod DV\n var j = x[i]&0x7fff;\n var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i+this.m.t;\n x[j] += this.m.am(0,u0,x,i,0,this.m.t);\n // propagate carry\n while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; }\n }\n x.clamp();\n x.drShiftTo(this.m.t,x);\n if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);\n }\n\n // r = \"x^2/R mod m\"; x != r\n function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }\n\n // r = \"xy/R mod m\"; x,y != r\n function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }\n\n Montgomery.prototype.convert = montConvert;\n Montgomery.prototype.revert = montRevert;\n Montgomery.prototype.reduce = montReduce;\n Montgomery.prototype.mulTo = montMulTo;\n Montgomery.prototype.sqrTo = montSqrTo;\n\n // (protected) true iff this is even\n function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }\n\n // (protected) this^e, e < 2^32, doing sqr and mul with \"r\" (HAC 14.79)\n function bnpExp(e,z) {\n if(e > 0xffffffff || e < 1) return BigInteger.ONE;\n var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;\n g.copyTo(r);\n while(--i >= 0) {\n z.sqrTo(r,r2);\n if((e&(1< 0) z.mulTo(r2,g,r);\n else { var t = r; r = r2; r2 = t; }\n }\n return z.revert(r);\n }\n\n // (public) this^e % m, 0 <= e < 2^32\n function bnModPowInt(e,m) {\n var z;\n if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);\n return this.exp(e,z);\n }\n\n // protected\n BigInteger.prototype.copyTo = bnpCopyTo;\n BigInteger.prototype.fromInt = bnpFromInt;\n BigInteger.prototype.fromString = bnpFromString;\n BigInteger.prototype.clamp = bnpClamp;\n BigInteger.prototype.dlShiftTo = bnpDLShiftTo;\n BigInteger.prototype.drShiftTo = bnpDRShiftTo;\n BigInteger.prototype.lShiftTo = bnpLShiftTo;\n BigInteger.prototype.rShiftTo = bnpRShiftTo;\n BigInteger.prototype.subTo = bnpSubTo;\n BigInteger.prototype.multiplyTo = bnpMultiplyTo;\n BigInteger.prototype.squareTo = bnpSquareTo;\n BigInteger.prototype.divRemTo = bnpDivRemTo;\n BigInteger.prototype.invDigit = bnpInvDigit;\n BigInteger.prototype.isEven = bnpIsEven;\n BigInteger.prototype.exp = bnpExp;\n\n // public\n BigInteger.prototype.toString = bnToString;\n BigInteger.prototype.negate = bnNegate;\n BigInteger.prototype.abs = bnAbs;\n BigInteger.prototype.compareTo = bnCompareTo;\n BigInteger.prototype.bitLength = bnBitLength;\n BigInteger.prototype.mod = bnMod;\n BigInteger.prototype.modPowInt = bnModPowInt;\n\n // \"constants\"\n BigInteger.ZERO = nbv(0);\n BigInteger.ONE = nbv(1);\n\n // Copyright (c) 2005-2009 Tom Wu\n // All Rights Reserved.\n // See \"LICENSE\" for details.\n\n // Extended JavaScript BN functions, required for RSA private ops.\n\n // Version 1.1: new BigInteger(\"0\", 10) returns \"proper\" zero\n // Version 1.2: square() API, isProbablePrime fix\n\n // (public)\n function bnClone() { var r = nbi(); this.copyTo(r); return r; }\n\n // (public) return value as integer\n function bnIntValue() {\n if(this.s < 0) {\n if(this.t == 1) return this[0]-this.DV;\n else if(this.t == 0) return -1;\n }\n else if(this.t == 1) return this[0];\n else if(this.t == 0) return 0;\n // assumes 16 < DB < 32\n return ((this[1]&((1<<(32-this.DB))-1))<>24; }\n\n // (public) return value as short (assumes DB>=16)\n function bnShortValue() { return (this.t==0)?this.s:(this[0]<<16)>>16; }\n\n // (protected) return x s.t. r^x < DV\n function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); }\n\n // (public) 0 if this == 0, 1 if this > 0\n function bnSigNum() {\n if(this.s < 0) return -1;\n else if(this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0;\n else return 1;\n }\n\n // (protected) convert to radix string\n function bnpToRadix(b) {\n if(b == null) b = 10;\n if(this.signum() == 0 || b < 2 || b > 36) return \"0\";\n var cs = this.chunkSize(b);\n var a = Math.pow(b,cs);\n var d = nbv(a), y = nbi(), z = nbi(), r = \"\";\n this.divRemTo(d,y,z);\n while(y.signum() > 0) {\n r = (a+z.intValue()).toString(b).substr(1) + r;\n y.divRemTo(d,y,z);\n }\n return z.intValue().toString(b) + r;\n }\n\n // (protected) convert from radix string\n function bnpFromRadix(s,b) {\n this.fromInt(0);\n if(b == null) b = 10;\n var cs = this.chunkSize(b);\n var d = Math.pow(b,cs), mi = false, j = 0, w = 0;\n for(var i = 0; i < s.length; ++i) {\n var x = intAt(s,i);\n if(x < 0) {\n if(s.charAt(i) == \"-\" && this.signum() == 0) mi = true;\n continue;\n }\n w = b*w+x;\n if(++j >= cs) {\n this.dMultiply(d);\n this.dAddOffset(w,0);\n j = 0;\n w = 0;\n }\n }\n if(j > 0) {\n this.dMultiply(Math.pow(b,j));\n this.dAddOffset(w,0);\n }\n if(mi) BigInteger.ZERO.subTo(this,this);\n }\n\n // (protected) alternate constructor\n function bnpFromNumber(a,b,c) {\n if(\"number\" == typeof b) {\n // new BigInteger(int,int,RNG)\n if(a < 2) this.fromInt(1);\n else {\n this.fromNumber(a,c);\n if(!this.testBit(a-1)) // force MSB set\n this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);\n if(this.isEven()) this.dAddOffset(1,0); // force odd\n while(!this.isProbablePrime(b)) {\n this.dAddOffset(2,0);\n if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this);\n }\n }\n }\n else {\n // new BigInteger(int,RNG)\n var x = new Array(), t = a&7;\n x.length = (a>>3)+1;\n b.nextBytes(x);\n if(t > 0) x[0] &= ((1< 0) {\n if(p < this.DB && (d = this[i]>>p) != (this.s&this.DM)>>p)\n r[k++] = d|(this.s<<(this.DB-p));\n while(i >= 0) {\n if(p < 8) {\n d = (this[i]&((1<>(p+=this.DB-8);\n }\n else {\n d = (this[i]>>(p-=8))&0xff;\n if(p <= 0) { p += this.DB; --i; }\n }\n if((d&0x80) != 0) d |= -256;\n if(k == 0 && (this.s&0x80) != (d&0x80)) ++k;\n if(k > 0 || d != this.s) r[k++] = d;\n }\n }\n return r;\n }\n\n function bnEquals(a) { return(this.compareTo(a)==0); }\n function bnMin(a) { return(this.compareTo(a)<0)?this:a; }\n function bnMax(a) { return(this.compareTo(a)>0)?this:a; }\n\n // (protected) r = this op a (bitwise)\n function bnpBitwiseTo(a,op,r) {\n var i, f, m = Math.min(a.t,this.t);\n for(i = 0; i < m; ++i) r[i] = op(this[i],a[i]);\n if(a.t < this.t) {\n f = a.s&this.DM;\n for(i = m; i < this.t; ++i) r[i] = op(this[i],f);\n r.t = this.t;\n }\n else {\n f = this.s&this.DM;\n for(i = m; i < a.t; ++i) r[i] = op(f,a[i]);\n r.t = a.t;\n }\n r.s = op(this.s,a.s);\n r.clamp();\n }\n\n // (public) this & a\n function op_and(x,y) { return x&y; }\n function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; }\n\n // (public) this | a\n function op_or(x,y) { return x|y; }\n function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; }\n\n // (public) this ^ a\n function op_xor(x,y) { return x^y; }\n function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; }\n\n // (public) this & ~a\n function op_andnot(x,y) { return x&~y; }\n function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; }\n\n // (public) ~this\n function bnNot() {\n var r = nbi();\n for(var i = 0; i < this.t; ++i) r[i] = this.DM&~this[i];\n r.t = this.t;\n r.s = ~this.s;\n return r;\n }\n\n // (public) this << n\n function bnShiftLeft(n) {\n var r = nbi();\n if(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r);\n return r;\n }\n\n // (public) this >> n\n function bnShiftRight(n) {\n var r = nbi();\n if(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r);\n return r;\n }\n\n // return index of lowest 1-bit in x, x < 2^31\n function lbit(x) {\n if(x == 0) return -1;\n var r = 0;\n if((x&0xffff) == 0) { x >>= 16; r += 16; }\n if((x&0xff) == 0) { x >>= 8; r += 8; }\n if((x&0xf) == 0) { x >>= 4; r += 4; }\n if((x&3) == 0) { x >>= 2; r += 2; }\n if((x&1) == 0) ++r;\n return r;\n }\n\n // (public) returns index of lowest 1-bit (or -1 if none)\n function bnGetLowestSetBit() {\n for(var i = 0; i < this.t; ++i)\n if(this[i] != 0) return i*this.DB+lbit(this[i]);\n if(this.s < 0) return this.t*this.DB;\n return -1;\n }\n\n // return number of 1 bits in x\n function cbit(x) {\n var r = 0;\n while(x != 0) { x &= x-1; ++r; }\n return r;\n }\n\n // (public) return number of set bits\n function bnBitCount() {\n var r = 0, x = this.s&this.DM;\n for(var i = 0; i < this.t; ++i) r += cbit(this[i]^x);\n return r;\n }\n\n // (public) true iff nth bit is set\n function bnTestBit(n) {\n var j = Math.floor(n/this.DB);\n if(j >= this.t) return(this.s!=0);\n return((this[j]&(1<<(n%this.DB)))!=0);\n }\n\n // (protected) this op (1<>= this.DB;\n }\n if(a.t < this.t) {\n c += a.s;\n while(i < this.t) {\n c += this[i];\n r[i++] = c&this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while(i < a.t) {\n c += a[i];\n r[i++] = c&this.DM;\n c >>= this.DB;\n }\n c += a.s;\n }\n r.s = (c<0)?-1:0;\n if(c > 0) r[i++] = c;\n else if(c < -1) r[i++] = this.DV+c;\n r.t = i;\n r.clamp();\n }\n\n // (public) this + a\n function bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; }\n\n // (public) this - a\n function bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; }\n\n // (public) this * a\n function bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; }\n\n // (public) this^2\n function bnSquare() { var r = nbi(); this.squareTo(r); return r; }\n\n // (public) this / a\n function bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; }\n\n // (public) this % a\n function bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; }\n\n // (public) [this/a,this%a]\n function bnDivideAndRemainder(a) {\n var q = nbi(), r = nbi();\n this.divRemTo(a,q,r);\n return new Array(q,r);\n }\n\n // (protected) this *= n, this >= 0, 1 < n < DV\n function bnpDMultiply(n) {\n this[this.t] = this.am(0,n-1,this,0,0,this.t);\n ++this.t;\n this.clamp();\n }\n\n // (protected) this += n << w words, this >= 0\n function bnpDAddOffset(n,w) {\n if(n == 0) return;\n while(this.t <= w) this[this.t++] = 0;\n this[w] += n;\n while(this[w] >= this.DV) {\n this[w] -= this.DV;\n if(++w >= this.t) this[this.t++] = 0;\n ++this[w];\n }\n }\n\n // A \"null\" reducer\n function NullExp() {}\n function nNop(x) { return x; }\n function nMulTo(x,y,r) { x.multiplyTo(y,r); }\n function nSqrTo(x,r) { x.squareTo(r); }\n\n NullExp.prototype.convert = nNop;\n NullExp.prototype.revert = nNop;\n NullExp.prototype.mulTo = nMulTo;\n NullExp.prototype.sqrTo = nSqrTo;\n\n // (public) this^e\n function bnPow(e) { return this.exp(e,new NullExp()); }\n\n // (protected) r = lower n words of \"this * a\", a.t <= n\n // \"this\" should be the larger one if appropriate.\n function bnpMultiplyLowerTo(a,n,r) {\n var i = Math.min(this.t+a.t,n);\n r.s = 0; // assumes a,this >= 0\n r.t = i;\n while(i > 0) r[--i] = 0;\n var j;\n for(j = r.t-this.t; i < j; ++i) r[i+this.t] = this.am(0,a[i],r,i,0,this.t);\n for(j = Math.min(a.t,n); i < j; ++i) this.am(0,a[i],r,i,0,n-i);\n r.clamp();\n }\n\n // (protected) r = \"this * a\" without lower n words, n > 0\n // \"this\" should be the larger one if appropriate.\n function bnpMultiplyUpperTo(a,n,r) {\n --n;\n var i = r.t = this.t+a.t-n;\n r.s = 0; // assumes a,this >= 0\n while(--i >= 0) r[i] = 0;\n for(i = Math.max(n-this.t,0); i < a.t; ++i)\n r[this.t+i-n] = this.am(n-i,a[i],r,0,0,this.t+i-n);\n r.clamp();\n r.drShiftTo(1,r);\n }\n\n // Barrett modular reduction\n function Barrett(m) {\n // setup Barrett\n this.r2 = nbi();\n this.q3 = nbi();\n BigInteger.ONE.dlShiftTo(2*m.t,this.r2);\n this.mu = this.r2.divide(m);\n this.m = m;\n }\n\n function barrettConvert(x) {\n if(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m);\n else if(x.compareTo(this.m) < 0) return x;\n else { var r = nbi(); x.copyTo(r); this.reduce(r); return r; }\n }\n\n function barrettRevert(x) { return x; }\n\n // x = x mod m (HAC 14.42)\n function barrettReduce(x) {\n x.drShiftTo(this.m.t-1,this.r2);\n if(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); }\n this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);\n this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);\n while(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1);\n x.subTo(this.r2,x);\n while(x.compareTo(this.m) >= 0) x.subTo(this.m,x);\n }\n\n // r = x^2 mod m; x != r\n function barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); }\n\n // r = x*y mod m; x,y != r\n function barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }\n\n Barrett.prototype.convert = barrettConvert;\n Barrett.prototype.revert = barrettRevert;\n Barrett.prototype.reduce = barrettReduce;\n Barrett.prototype.mulTo = barrettMulTo;\n Barrett.prototype.sqrTo = barrettSqrTo;\n\n // (public) this^e % m (HAC 14.85)\n function bnModPow(e,m) {\n var i = e.bitLength(), k, r = nbv(1), z;\n if(i <= 0) return r;\n else if(i < 18) k = 1;\n else if(i < 48) k = 3;\n else if(i < 144) k = 4;\n else if(i < 768) k = 5;\n else k = 6;\n if(i < 8)\n z = new Classic(m);\n else if(m.isEven())\n z = new Barrett(m);\n else\n z = new Montgomery(m);\n\n // precomputation\n var g = new Array(), n = 3, k1 = k-1, km = (1< 1) {\n var g2 = nbi();\n z.sqrTo(g[1],g2);\n while(n <= km) {\n g[n] = nbi();\n z.mulTo(g2,g[n-2],g[n]);\n n += 2;\n }\n }\n\n var j = e.t-1, w, is1 = true, r2 = nbi(), t;\n i = nbits(e[j])-1;\n while(j >= 0) {\n if(i >= k1) w = (e[j]>>(i-k1))&km;\n else {\n w = (e[j]&((1<<(i+1))-1))<<(k1-i);\n if(j > 0) w |= e[j-1]>>(this.DB+i-k1);\n }\n\n n = k;\n while((w&1) == 0) { w >>= 1; --n; }\n if((i -= n) < 0) { i += this.DB; --j; }\n if(is1) { // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n }\n else {\n while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; }\n if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; }\n z.mulTo(r2,g[w],r);\n }\n\n while(j >= 0 && (e[j]&(1< 0) {\n x.rShiftTo(g,x);\n y.rShiftTo(g,y);\n }\n while(x.signum() > 0) {\n if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x);\n if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y);\n if(x.compareTo(y) >= 0) {\n x.subTo(y,x);\n x.rShiftTo(1,x);\n }\n else {\n y.subTo(x,y);\n y.rShiftTo(1,y);\n }\n }\n if(g > 0) y.lShiftTo(g,y);\n return y;\n }\n\n // (protected) this % n, n < 2^26\n function bnpModInt(n) {\n if(n <= 0) return 0;\n var d = this.DV%n, r = (this.s<0)?n-1:0;\n if(this.t > 0)\n if(d == 0) r = this[0]%n;\n else for(var i = this.t-1; i >= 0; --i) r = (d*r+this[i])%n;\n return r;\n }\n\n // (public) 1/this % m (HAC 14.61)\n function bnModInverse(m) {\n var ac = m.isEven();\n if((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO;\n var u = m.clone(), v = this.clone();\n var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1);\n while(u.signum() != 0) {\n while(u.isEven()) {\n u.rShiftTo(1,u);\n if(ac) {\n if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); }\n a.rShiftTo(1,a);\n }\n else if(!b.isEven()) b.subTo(m,b);\n b.rShiftTo(1,b);\n }\n while(v.isEven()) {\n v.rShiftTo(1,v);\n if(ac) {\n if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); }\n c.rShiftTo(1,c);\n }\n else if(!d.isEven()) d.subTo(m,d);\n d.rShiftTo(1,d);\n }\n if(u.compareTo(v) >= 0) {\n u.subTo(v,u);\n if(ac) a.subTo(c,a);\n b.subTo(d,b);\n }\n else {\n v.subTo(u,v);\n if(ac) c.subTo(a,c);\n d.subTo(b,d);\n }\n }\n if(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO;\n if(d.compareTo(m) >= 0) return d.subtract(m);\n if(d.signum() < 0) d.addTo(m,d); else return d;\n if(d.signum() < 0) return d.add(m); else return d;\n }\n\n var lowprimes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997];\n var lplim = (1<<26)/lowprimes[lowprimes.length-1];\n\n // (public) test primality with certainty >= 1-.5^t\n function bnIsProbablePrime(t) {\n var i, x = this.abs();\n if(x.t == 1 && x[0] <= lowprimes[lowprimes.length-1]) {\n for(i = 0; i < lowprimes.length; ++i)\n if(x[0] == lowprimes[i]) return true;\n return false;\n }\n if(x.isEven()) return false;\n i = 1;\n while(i < lowprimes.length) {\n var m = lowprimes[i], j = i+1;\n while(j < lowprimes.length && m < lplim) m *= lowprimes[j++];\n m = x.modInt(m);\n while(i < j) if(m%lowprimes[i++] == 0) return false;\n }\n return x.millerRabin(t);\n }\n\n // (protected) true if probably prime (HAC 4.24, Miller-Rabin)\n function bnpMillerRabin(t) {\n var n1 = this.subtract(BigInteger.ONE);\n var k = n1.getLowestSetBit();\n if(k <= 0) return false;\n var r = n1.shiftRight(k);\n t = (t+1)>>1;\n if(t > lowprimes.length) t = lowprimes.length;\n var a = nbi();\n for(var i = 0; i < t; ++i) {\n //Pick bases at random, instead of starting at 2\n a.fromInt(lowprimes[Math.floor(Math.random()*lowprimes.length)]);\n var y = a.modPow(r,this);\n if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {\n var j = 1;\n while(j++ < k && y.compareTo(n1) != 0) {\n y = y.modPowInt(2,this);\n if(y.compareTo(BigInteger.ONE) == 0) return false;\n }\n if(y.compareTo(n1) != 0) return false;\n }\n }\n return true;\n }\n\n // protected\n BigInteger.prototype.chunkSize = bnpChunkSize;\n BigInteger.prototype.toRadix = bnpToRadix;\n BigInteger.prototype.fromRadix = bnpFromRadix;\n BigInteger.prototype.fromNumber = bnpFromNumber;\n BigInteger.prototype.bitwiseTo = bnpBitwiseTo;\n BigInteger.prototype.changeBit = bnpChangeBit;\n BigInteger.prototype.addTo = bnpAddTo;\n BigInteger.prototype.dMultiply = bnpDMultiply;\n BigInteger.prototype.dAddOffset = bnpDAddOffset;\n BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;\n BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;\n BigInteger.prototype.modInt = bnpModInt;\n BigInteger.prototype.millerRabin = bnpMillerRabin;\n\n // public\n BigInteger.prototype.clone = bnClone;\n BigInteger.prototype.intValue = bnIntValue;\n BigInteger.prototype.byteValue = bnByteValue;\n BigInteger.prototype.shortValue = bnShortValue;\n BigInteger.prototype.signum = bnSigNum;\n BigInteger.prototype.toByteArray = bnToByteArray;\n BigInteger.prototype.equals = bnEquals;\n BigInteger.prototype.min = bnMin;\n BigInteger.prototype.max = bnMax;\n BigInteger.prototype.and = bnAnd;\n BigInteger.prototype.or = bnOr;\n BigInteger.prototype.xor = bnXor;\n BigInteger.prototype.andNot = bnAndNot;\n BigInteger.prototype.not = bnNot;\n BigInteger.prototype.shiftLeft = bnShiftLeft;\n BigInteger.prototype.shiftRight = bnShiftRight;\n BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;\n BigInteger.prototype.bitCount = bnBitCount;\n BigInteger.prototype.testBit = bnTestBit;\n BigInteger.prototype.setBit = bnSetBit;\n BigInteger.prototype.clearBit = bnClearBit;\n BigInteger.prototype.flipBit = bnFlipBit;\n BigInteger.prototype.add = bnAdd;\n BigInteger.prototype.subtract = bnSubtract;\n BigInteger.prototype.multiply = bnMultiply;\n BigInteger.prototype.divide = bnDivide;\n BigInteger.prototype.remainder = bnRemainder;\n BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;\n BigInteger.prototype.modPow = bnModPow;\n BigInteger.prototype.modInverse = bnModInverse;\n BigInteger.prototype.pow = bnPow;\n BigInteger.prototype.gcd = bnGCD;\n BigInteger.prototype.isProbablePrime = bnIsProbablePrime;\n\n // JSBN-specific extension\n BigInteger.prototype.square = bnSquare;\n\n // Expose the Barrett function\n BigInteger.prototype.Barrett = Barrett\n\n // BigInteger interfaces not implemented in jsbn:\n\n // BigInteger(int signum, byte[] magnitude)\n // double doubleValue()\n // float floatValue()\n // int hashCode()\n // long longValue()\n // static BigInteger valueOf(long val)\n\n // Random number generator - requires a PRNG backend, e.g. prng4.js\n\n // For best results, put code like\n // \n // in your main HTML document.\n\n var rng_state;\n var rng_pool;\n var rng_pptr;\n\n // Mix in a 32-bit integer into the pool\n function rng_seed_int(x) {\n rng_pool[rng_pptr++] ^= x & 255;\n rng_pool[rng_pptr++] ^= (x >> 8) & 255;\n rng_pool[rng_pptr++] ^= (x >> 16) & 255;\n rng_pool[rng_pptr++] ^= (x >> 24) & 255;\n if(rng_pptr >= rng_psize) rng_pptr -= rng_psize;\n }\n\n // Mix in the current time (w/milliseconds) into the pool\n function rng_seed_time() {\n rng_seed_int(new Date().getTime());\n }\n\n // Initialize the pool with junk if needed.\n if(rng_pool == null) {\n rng_pool = new Array();\n rng_pptr = 0;\n var t;\n if(typeof window !== \"undefined\" && window.crypto) {\n if (window.crypto.getRandomValues) {\n // Use webcrypto if available\n var ua = new Uint8Array(32);\n window.crypto.getRandomValues(ua);\n for(t = 0; t < 32; ++t)\n rng_pool[rng_pptr++] = ua[t];\n }\n else if(navigator.appName == \"Netscape\" && navigator.appVersion < \"5\") {\n // Extract entropy (256 bits) from NS4 RNG if available\n var z = window.crypto.random(32);\n for(t = 0; t < z.length; ++t)\n rng_pool[rng_pptr++] = z.charCodeAt(t) & 255;\n }\n }\n while(rng_pptr < rng_psize) { // extract some randomness from Math.random()\n t = Math.floor(65536 * Math.random());\n rng_pool[rng_pptr++] = t >>> 8;\n rng_pool[rng_pptr++] = t & 255;\n }\n rng_pptr = 0;\n rng_seed_time();\n //rng_seed_int(window.screenX);\n //rng_seed_int(window.screenY);\n }\n\n function rng_get_byte() {\n if(rng_state == null) {\n rng_seed_time();\n rng_state = prng_newstate();\n rng_state.init(rng_pool);\n for(rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr)\n rng_pool[rng_pptr] = 0;\n rng_pptr = 0;\n //rng_pool = null;\n }\n // TODO: allow reseeding after first request\n return rng_state.next();\n }\n\n function rng_get_bytes(ba) {\n var i;\n for(i = 0; i < ba.length; ++i) ba[i] = rng_get_byte();\n }\n\n function SecureRandom() {}\n\n SecureRandom.prototype.nextBytes = rng_get_bytes;\n\n // prng4.js - uses Arcfour as a PRNG\n\n function Arcfour() {\n this.i = 0;\n this.j = 0;\n this.S = new Array();\n }\n\n // Initialize arcfour context from key, an array of ints, each from [0..255]\n function ARC4init(key) {\n var i, j, t;\n for(i = 0; i < 256; ++i)\n this.S[i] = i;\n j = 0;\n for(i = 0; i < 256; ++i) {\n j = (j + this.S[i] + key[i % key.length]) & 255;\n t = this.S[i];\n this.S[i] = this.S[j];\n this.S[j] = t;\n }\n this.i = 0;\n this.j = 0;\n }\n\n function ARC4next() {\n var t;\n this.i = (this.i + 1) & 255;\n this.j = (this.j + this.S[this.i]) & 255;\n t = this.S[this.i];\n this.S[this.i] = this.S[this.j];\n this.S[this.j] = t;\n return this.S[(t + this.S[this.i]) & 255];\n }\n\n Arcfour.prototype.init = ARC4init;\n Arcfour.prototype.next = ARC4next;\n\n // Plug in your RNG constructor here\n function prng_newstate() {\n return new Arcfour();\n }\n\n // Pool size must be a multiple of 4 and greater than 32.\n // An array of bytes the size of the pool will be passed to init()\n var rng_psize = 256;\n\n if (typeof exports !== 'undefined') {\n exports = module.exports = {\n default: BigInteger,\n BigInteger: BigInteger,\n SecureRandom: SecureRandom,\n };\n } else {\n this.jsbn = {\n BigInteger: BigInteger,\n SecureRandom: SecureRandom\n };\n }\n\n}).call(this);\n","/* global window, exports, define */\n\n!function() {\n 'use strict'\n\n var re = {\n not_string: /[^s]/,\n not_bool: /[^t]/,\n not_type: /[^T]/,\n not_primitive: /[^v]/,\n number: /[diefg]/,\n numeric_arg: /[bcdiefguxX]/,\n json: /[j]/,\n not_json: /[^j]/,\n text: /^[^\\x25]+/,\n modulo: /^\\x25{2}/,\n placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n key: /^([a-z_][a-z_\\d]*)/i,\n key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n index_access: /^\\[(\\d+)\\]/,\n sign: /^[+-]/\n }\n\n function sprintf(key) {\n // `arguments` is not an array, but should be fine for this call\n return sprintf_format(sprintf_parse(key), arguments)\n }\n\n function vsprintf(fmt, argv) {\n return sprintf.apply(null, [fmt].concat(argv || []))\n }\n\n function sprintf_format(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign\n for (i = 0; i < tree_length; i++) {\n if (typeof parse_tree[i] === 'string') {\n output += parse_tree[i]\n }\n else if (typeof parse_tree[i] === 'object') {\n ph = parse_tree[i] // convenience purposes only\n if (ph.keys) { // keyword argument\n arg = argv[cursor]\n for (k = 0; k < ph.keys.length; k++) {\n if (arg == undefined) {\n throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k-1]))\n }\n arg = arg[ph.keys[k]]\n }\n }\n else if (ph.param_no) { // positional argument (explicit)\n arg = argv[ph.param_no]\n }\n else { // positional argument (implicit)\n arg = argv[cursor++]\n }\n\n if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n arg = arg()\n }\n\n if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {\n throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))\n }\n\n if (re.number.test(ph.type)) {\n is_positive = arg >= 0\n }\n\n switch (ph.type) {\n case 'b':\n arg = parseInt(arg, 10).toString(2)\n break\n case 'c':\n arg = String.fromCharCode(parseInt(arg, 10))\n break\n case 'd':\n case 'i':\n arg = parseInt(arg, 10)\n break\n case 'j':\n arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n break\n case 'e':\n arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n break\n case 'f':\n arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n break\n case 'g':\n arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n break\n case 'o':\n arg = (parseInt(arg, 10) >>> 0).toString(8)\n break\n case 's':\n arg = String(arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 't':\n arg = String(!!arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'T':\n arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'u':\n arg = parseInt(arg, 10) >>> 0\n break\n case 'v':\n arg = arg.valueOf()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'x':\n arg = (parseInt(arg, 10) >>> 0).toString(16)\n break\n case 'X':\n arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n break\n }\n if (re.json.test(ph.type)) {\n output += arg\n }\n else {\n if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n sign = is_positive ? '+' : '-'\n arg = arg.toString().replace(re.sign, '')\n }\n else {\n sign = ''\n }\n pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n pad_length = ph.width - (sign + arg).length\n pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n }\n }\n }\n return output\n }\n\n var sprintf_cache = Object.create(null)\n\n function sprintf_parse(fmt) {\n if (sprintf_cache[fmt]) {\n return sprintf_cache[fmt]\n }\n\n var _fmt = fmt, match, parse_tree = [], arg_names = 0\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree.push(match[0])\n }\n else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree.push('%')\n }\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1\n var field_list = [], replacement_field = match[2], field_match = []\n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n }\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n match[2] = field_list\n }\n else {\n arg_names |= 2\n }\n if (arg_names === 3) {\n throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n }\n\n parse_tree.push(\n {\n placeholder: match[0],\n param_no: match[1],\n keys: match[2],\n sign: match[3],\n pad_char: match[4],\n align: match[5],\n width: match[6],\n precision: match[7],\n type: match[8]\n }\n )\n }\n else {\n throw new SyntaxError('[sprintf] unexpected placeholder')\n }\n _fmt = _fmt.substring(match[0].length)\n }\n return sprintf_cache[fmt] = parse_tree\n }\n\n /**\n * export to either browser or node.js\n */\n /* eslint-disable quote-props */\n if (typeof exports !== 'undefined') {\n exports['sprintf'] = sprintf\n exports['vsprintf'] = vsprintf\n }\n if (typeof window !== 'undefined') {\n window['sprintf'] = sprintf\n window['vsprintf'] = vsprintf\n\n if (typeof define === 'function' && define['amd']) {\n define(function() {\n return {\n 'sprintf': sprintf,\n 'vsprintf': vsprintf\n }\n })\n }\n }\n /* eslint-enable quote-props */\n}(); // eslint-disable-line\n","\"use strict\";\n/* eslint-disable no-param-reassign */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Address4 = void 0;\nconst common = __importStar(require(\"./common\"));\nconst constants = __importStar(require(\"./v4/constants\"));\nconst address_error_1 = require(\"./address-error\");\nconst jsbn_1 = require(\"jsbn\");\nconst sprintf_js_1 = require(\"sprintf-js\");\n/**\n * Represents an IPv4 address\n * @class Address4\n * @param {string} address - An IPv4 address string\n */\nclass Address4 {\n constructor(address) {\n this.groups = constants.GROUPS;\n this.parsedAddress = [];\n this.parsedSubnet = '';\n this.subnet = '/32';\n this.subnetMask = 32;\n this.v4 = true;\n /**\n * Returns true if the address is correct, false otherwise\n * @memberof Address4\n * @instance\n * @returns {Boolean}\n */\n this.isCorrect = common.isCorrect(constants.BITS);\n /**\n * Returns true if the given address is in the subnet of the current address\n * @memberof Address4\n * @instance\n * @returns {boolean}\n */\n this.isInSubnet = common.isInSubnet;\n this.address = address;\n const subnet = constants.RE_SUBNET_STRING.exec(address);\n if (subnet) {\n this.parsedSubnet = subnet[0].replace('/', '');\n this.subnetMask = parseInt(this.parsedSubnet, 10);\n this.subnet = `/${this.subnetMask}`;\n if (this.subnetMask < 0 || this.subnetMask > constants.BITS) {\n throw new address_error_1.AddressError('Invalid subnet mask.');\n }\n address = address.replace(constants.RE_SUBNET_STRING, '');\n }\n this.addressMinusSuffix = address;\n this.parsedAddress = this.parse(address);\n }\n static isValid(address) {\n try {\n // eslint-disable-next-line no-new\n new Address4(address);\n return true;\n }\n catch (e) {\n return false;\n }\n }\n /*\n * Parses a v4 address\n */\n parse(address) {\n const groups = address.split('.');\n if (!address.match(constants.RE_ADDRESS)) {\n throw new address_error_1.AddressError('Invalid IPv4 address.');\n }\n return groups;\n }\n /**\n * Returns the correct form of an address\n * @memberof Address4\n * @instance\n * @returns {String}\n */\n correctForm() {\n return this.parsedAddress.map((part) => parseInt(part, 10)).join('.');\n }\n /**\n * Converts a hex string to an IPv4 address object\n * @memberof Address4\n * @static\n * @param {string} hex - a hex string to convert\n * @returns {Address4}\n */\n static fromHex(hex) {\n const padded = hex.replace(/:/g, '').padStart(8, '0');\n const groups = [];\n let i;\n for (i = 0; i < 8; i += 2) {\n const h = padded.slice(i, i + 2);\n groups.push(parseInt(h, 16));\n }\n return new Address4(groups.join('.'));\n }\n /**\n * Converts an integer into a IPv4 address object\n * @memberof Address4\n * @static\n * @param {integer} integer - a number to convert\n * @returns {Address4}\n */\n static fromInteger(integer) {\n return Address4.fromHex(integer.toString(16));\n }\n /**\n * Return an address from in-addr.arpa form\n * @memberof Address4\n * @static\n * @param {string} arpaFormAddress - an 'in-addr.arpa' form ipv4 address\n * @returns {Adress4}\n * @example\n * var address = Address4.fromArpa(42.2.0.192.in-addr.arpa.)\n * address.correctForm(); // '192.0.2.42'\n */\n static fromArpa(arpaFormAddress) {\n // remove ending \".in-addr.arpa.\" or just \".\"\n const leader = arpaFormAddress.replace(/(\\.in-addr\\.arpa)?\\.$/, '');\n const address = leader.split('.').reverse().join('.');\n return new Address4(address);\n }\n /**\n * Converts an IPv4 address object to a hex string\n * @memberof Address4\n * @instance\n * @returns {String}\n */\n toHex() {\n return this.parsedAddress.map((part) => (0, sprintf_js_1.sprintf)('%02x', parseInt(part, 10))).join(':');\n }\n /**\n * Converts an IPv4 address object to an array of bytes\n * @memberof Address4\n * @instance\n * @returns {Array}\n */\n toArray() {\n return this.parsedAddress.map((part) => parseInt(part, 10));\n }\n /**\n * Converts an IPv4 address object to an IPv6 address group\n * @memberof Address4\n * @instance\n * @returns {String}\n */\n toGroup6() {\n const output = [];\n let i;\n for (i = 0; i < constants.GROUPS; i += 2) {\n const hex = (0, sprintf_js_1.sprintf)('%02x%02x', parseInt(this.parsedAddress[i], 10), parseInt(this.parsedAddress[i + 1], 10));\n output.push((0, sprintf_js_1.sprintf)('%x', parseInt(hex, 16)));\n }\n return output.join(':');\n }\n /**\n * Returns the address as a BigInteger\n * @memberof Address4\n * @instance\n * @returns {BigInteger}\n */\n bigInteger() {\n return new jsbn_1.BigInteger(this.parsedAddress.map((n) => (0, sprintf_js_1.sprintf)('%02x', parseInt(n, 10))).join(''), 16);\n }\n /**\n * Helper function getting start address.\n * @memberof Address4\n * @instance\n * @returns {BigInteger}\n */\n _startAddress() {\n return new jsbn_1.BigInteger(this.mask() + '0'.repeat(constants.BITS - this.subnetMask), 2);\n }\n /**\n * The first address in the range given by this address' subnet.\n * Often referred to as the Network Address.\n * @memberof Address4\n * @instance\n * @returns {Address4}\n */\n startAddress() {\n return Address4.fromBigInteger(this._startAddress());\n }\n /**\n * The first host address in the range given by this address's subnet ie\n * the first address after the Network Address\n * @memberof Address4\n * @instance\n * @returns {Address4}\n */\n startAddressExclusive() {\n const adjust = new jsbn_1.BigInteger('1');\n return Address4.fromBigInteger(this._startAddress().add(adjust));\n }\n /**\n * Helper function getting end address.\n * @memberof Address4\n * @instance\n * @returns {BigInteger}\n */\n _endAddress() {\n return new jsbn_1.BigInteger(this.mask() + '1'.repeat(constants.BITS - this.subnetMask), 2);\n }\n /**\n * The last address in the range given by this address' subnet\n * Often referred to as the Broadcast\n * @memberof Address4\n * @instance\n * @returns {Address4}\n */\n endAddress() {\n return Address4.fromBigInteger(this._endAddress());\n }\n /**\n * The last host address in the range given by this address's subnet ie\n * the last address prior to the Broadcast Address\n * @memberof Address4\n * @instance\n * @returns {Address4}\n */\n endAddressExclusive() {\n const adjust = new jsbn_1.BigInteger('1');\n return Address4.fromBigInteger(this._endAddress().subtract(adjust));\n }\n /**\n * Converts a BigInteger to a v4 address object\n * @memberof Address4\n * @static\n * @param {BigInteger} bigInteger - a BigInteger to convert\n * @returns {Address4}\n */\n static fromBigInteger(bigInteger) {\n return Address4.fromInteger(parseInt(bigInteger.toString(), 10));\n }\n /**\n * Returns the first n bits of the address, defaulting to the\n * subnet mask\n * @memberof Address4\n * @instance\n * @returns {String}\n */\n mask(mask) {\n if (mask === undefined) {\n mask = this.subnetMask;\n }\n return this.getBitsBase2(0, mask);\n }\n /**\n * Returns the bits in the given range as a base-2 string\n * @memberof Address4\n * @instance\n * @returns {string}\n */\n getBitsBase2(start, end) {\n return this.binaryZeroPad().slice(start, end);\n }\n /**\n * Return the reversed ip6.arpa form of the address\n * @memberof Address4\n * @param {Object} options\n * @param {boolean} options.omitSuffix - omit the \"in-addr.arpa\" suffix\n * @instance\n * @returns {String}\n */\n reverseForm(options) {\n if (!options) {\n options = {};\n }\n const reversed = this.correctForm().split('.').reverse().join('.');\n if (options.omitSuffix) {\n return reversed;\n }\n return (0, sprintf_js_1.sprintf)('%s.in-addr.arpa.', reversed);\n }\n /**\n * Returns true if the given address is a multicast address\n * @memberof Address4\n * @instance\n * @returns {boolean}\n */\n isMulticast() {\n return this.isInSubnet(new Address4('224.0.0.0/4'));\n }\n /**\n * Returns a zero-padded base-2 string representation of the address\n * @memberof Address4\n * @instance\n * @returns {string}\n */\n binaryZeroPad() {\n return this.bigInteger().toString(2).padStart(constants.BITS, '0');\n }\n /**\n * Groups an IPv4 address for inclusion at the end of an IPv6 address\n * @returns {String}\n */\n groupForV6() {\n const segments = this.parsedAddress;\n return this.address.replace(constants.RE_ADDRESS, (0, sprintf_js_1.sprintf)('%s.%s', segments.slice(0, 2).join('.'), segments.slice(2, 4).join('.')));\n }\n}\nexports.Address4 = Address4;\n//# sourceMappingURL=ipv4.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RE_URL_WITH_PORT = exports.RE_URL = exports.RE_ZONE_STRING = exports.RE_SUBNET_STRING = exports.RE_BAD_ADDRESS = exports.RE_BAD_CHARACTERS = exports.TYPES = exports.SCOPES = exports.GROUPS = exports.BITS = void 0;\nexports.BITS = 128;\nexports.GROUPS = 8;\n/**\n * Represents IPv6 address scopes\n * @memberof Address6\n * @static\n */\nexports.SCOPES = {\n 0: 'Reserved',\n 1: 'Interface local',\n 2: 'Link local',\n 4: 'Admin local',\n 5: 'Site local',\n 8: 'Organization local',\n 14: 'Global',\n 15: 'Reserved',\n};\n/**\n * Represents IPv6 address types\n * @memberof Address6\n * @static\n */\nexports.TYPES = {\n 'ff01::1/128': 'Multicast (All nodes on this interface)',\n 'ff01::2/128': 'Multicast (All routers on this interface)',\n 'ff02::1/128': 'Multicast (All nodes on this link)',\n 'ff02::2/128': 'Multicast (All routers on this link)',\n 'ff05::2/128': 'Multicast (All routers in this site)',\n 'ff02::5/128': 'Multicast (OSPFv3 AllSPF routers)',\n 'ff02::6/128': 'Multicast (OSPFv3 AllDR routers)',\n 'ff02::9/128': 'Multicast (RIP routers)',\n 'ff02::a/128': 'Multicast (EIGRP routers)',\n 'ff02::d/128': 'Multicast (PIM routers)',\n 'ff02::16/128': 'Multicast (MLDv2 reports)',\n 'ff01::fb/128': 'Multicast (mDNSv6)',\n 'ff02::fb/128': 'Multicast (mDNSv6)',\n 'ff05::fb/128': 'Multicast (mDNSv6)',\n 'ff02::1:2/128': 'Multicast (All DHCP servers and relay agents on this link)',\n 'ff05::1:2/128': 'Multicast (All DHCP servers and relay agents in this site)',\n 'ff02::1:3/128': 'Multicast (All DHCP servers on this link)',\n 'ff05::1:3/128': 'Multicast (All DHCP servers in this site)',\n '::/128': 'Unspecified',\n '::1/128': 'Loopback',\n 'ff00::/8': 'Multicast',\n 'fe80::/10': 'Link-local unicast',\n};\n/**\n * A regular expression that matches bad characters in an IPv6 address\n * @memberof Address6\n * @static\n */\nexports.RE_BAD_CHARACTERS = /([^0-9a-f:/%])/gi;\n/**\n * A regular expression that matches an incorrect IPv6 address\n * @memberof Address6\n * @static\n */\nexports.RE_BAD_ADDRESS = /([0-9a-f]{5,}|:{3,}|[^:]:$|^:[^:]|\\/$)/gi;\n/**\n * A regular expression that matches an IPv6 subnet\n * @memberof Address6\n * @static\n */\nexports.RE_SUBNET_STRING = /\\/\\d{1,3}(?=%|$)/;\n/**\n * A regular expression that matches an IPv6 zone\n * @memberof Address6\n * @static\n */\nexports.RE_ZONE_STRING = /%.*$/;\nexports.RE_URL = new RegExp(/^\\[{0,1}([0-9a-f:]+)\\]{0,1}/);\nexports.RE_URL_WITH_PORT = new RegExp(/\\[([0-9a-f:]+)\\]:([0-9]{1,5})/);\n//# sourceMappingURL=constants.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.simpleGroup = exports.spanLeadingZeroes = exports.spanAll = exports.spanAllZeroes = void 0;\nconst sprintf_js_1 = require(\"sprintf-js\");\n/**\n * @returns {String} the string with all zeroes contained in a \n */\nfunction spanAllZeroes(s) {\n return s.replace(/(0+)/g, '$1');\n}\nexports.spanAllZeroes = spanAllZeroes;\n/**\n * @returns {String} the string with each character contained in a \n */\nfunction spanAll(s, offset = 0) {\n const letters = s.split('');\n return letters\n .map((n, i) => (0, sprintf_js_1.sprintf)('%s', n, i + offset, spanAllZeroes(n)) // XXX Use #base-2 .value-0 instead?\n )\n .join('');\n}\nexports.spanAll = spanAll;\nfunction spanLeadingZeroesSimple(group) {\n return group.replace(/^(0+)/, '$1');\n}\n/**\n * @returns {String} the string with leading zeroes contained in a \n */\nfunction spanLeadingZeroes(address) {\n const groups = address.split(':');\n return groups.map((g) => spanLeadingZeroesSimple(g)).join(':');\n}\nexports.spanLeadingZeroes = spanLeadingZeroes;\n/**\n * Groups an address\n * @returns {String} a grouped address\n */\nfunction simpleGroup(addressString, offset = 0) {\n const groups = addressString.split(':');\n return groups.map((g, i) => {\n if (/group-v4/.test(g)) {\n return g;\n }\n return (0, sprintf_js_1.sprintf)('%s', i + offset, spanLeadingZeroesSimple(g));\n });\n}\nexports.simpleGroup = simpleGroup;\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.possibleElisions = exports.simpleRegularExpression = exports.ADDRESS_BOUNDARY = exports.padGroup = exports.groupPossibilities = void 0;\nconst v6 = __importStar(require(\"./constants\"));\nconst sprintf_js_1 = require(\"sprintf-js\");\nfunction groupPossibilities(possibilities) {\n return (0, sprintf_js_1.sprintf)('(%s)', possibilities.join('|'));\n}\nexports.groupPossibilities = groupPossibilities;\nfunction padGroup(group) {\n if (group.length < 4) {\n return (0, sprintf_js_1.sprintf)('0{0,%d}%s', 4 - group.length, group);\n }\n return group;\n}\nexports.padGroup = padGroup;\nexports.ADDRESS_BOUNDARY = '[^A-Fa-f0-9:]';\nfunction simpleRegularExpression(groups) {\n const zeroIndexes = [];\n groups.forEach((group, i) => {\n const groupInteger = parseInt(group, 16);\n if (groupInteger === 0) {\n zeroIndexes.push(i);\n }\n });\n // You can technically elide a single 0, this creates the regular expressions\n // to match that eventuality\n const possibilities = zeroIndexes.map((zeroIndex) => groups\n .map((group, i) => {\n if (i === zeroIndex) {\n const elision = i === 0 || i === v6.GROUPS - 1 ? ':' : '';\n return groupPossibilities([padGroup(group), elision]);\n }\n return padGroup(group);\n })\n .join(':'));\n // The simplest case\n possibilities.push(groups.map(padGroup).join(':'));\n return groupPossibilities(possibilities);\n}\nexports.simpleRegularExpression = simpleRegularExpression;\nfunction possibleElisions(elidedGroups, moreLeft, moreRight) {\n const left = moreLeft ? '' : ':';\n const right = moreRight ? '' : ':';\n const possibilities = [];\n // 1. elision of everything (::)\n if (!moreLeft && !moreRight) {\n possibilities.push('::');\n }\n // 2. complete elision of the middle\n if (moreLeft && moreRight) {\n possibilities.push('');\n }\n if ((moreRight && !moreLeft) || (!moreRight && moreLeft)) {\n // 3. complete elision of one side\n possibilities.push(':');\n }\n // 4. elision from the left side\n possibilities.push((0, sprintf_js_1.sprintf)('%s(:0{1,4}){1,%d}', left, elidedGroups - 1));\n // 5. elision from the right side\n possibilities.push((0, sprintf_js_1.sprintf)('(0{1,4}:){1,%d}%s', elidedGroups - 1, right));\n // 6. no elision\n possibilities.push((0, sprintf_js_1.sprintf)('(0{1,4}:){%d}0{1,4}', elidedGroups - 1));\n // 7. elision (including sloppy elision) from the middle\n for (let groups = 1; groups < elidedGroups - 1; groups++) {\n for (let position = 1; position < elidedGroups - groups; position++) {\n possibilities.push((0, sprintf_js_1.sprintf)('(0{1,4}:){%d}:(0{1,4}:){%d}0{1,4}', position, elidedGroups - position - groups - 1));\n }\n }\n return groupPossibilities(possibilities);\n}\nexports.possibleElisions = possibleElisions;\n//# sourceMappingURL=regular-expressions.js.map","\"use strict\";\n/* eslint-disable prefer-destructuring */\n/* eslint-disable no-param-reassign */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Address6 = void 0;\nconst common = __importStar(require(\"./common\"));\nconst constants4 = __importStar(require(\"./v4/constants\"));\nconst constants6 = __importStar(require(\"./v6/constants\"));\nconst helpers = __importStar(require(\"./v6/helpers\"));\nconst ipv4_1 = require(\"./ipv4\");\nconst regular_expressions_1 = require(\"./v6/regular-expressions\");\nconst address_error_1 = require(\"./address-error\");\nconst jsbn_1 = require(\"jsbn\");\nconst sprintf_js_1 = require(\"sprintf-js\");\nfunction assert(condition) {\n if (!condition) {\n throw new Error('Assertion failed.');\n }\n}\nfunction addCommas(number) {\n const r = /(\\d+)(\\d{3})/;\n while (r.test(number)) {\n number = number.replace(r, '$1,$2');\n }\n return number;\n}\nfunction spanLeadingZeroes4(n) {\n n = n.replace(/^(0{1,})([1-9]+)$/, '$1$2');\n n = n.replace(/^(0{1,})(0)$/, '$1$2');\n return n;\n}\n/*\n * A helper function to compact an array\n */\nfunction compact(address, slice) {\n const s1 = [];\n const s2 = [];\n let i;\n for (i = 0; i < address.length; i++) {\n if (i < slice[0]) {\n s1.push(address[i]);\n }\n else if (i > slice[1]) {\n s2.push(address[i]);\n }\n }\n return s1.concat(['compact']).concat(s2);\n}\nfunction paddedHex(octet) {\n return (0, sprintf_js_1.sprintf)('%04x', parseInt(octet, 16));\n}\nfunction unsignByte(b) {\n // eslint-disable-next-line no-bitwise\n return b & 0xff;\n}\n/**\n * Represents an IPv6 address\n * @class Address6\n * @param {string} address - An IPv6 address string\n * @param {number} [groups=8] - How many octets to parse\n * @example\n * var address = new Address6('2001::/32');\n */\nclass Address6 {\n constructor(address, optionalGroups) {\n this.addressMinusSuffix = '';\n this.parsedSubnet = '';\n this.subnet = '/128';\n this.subnetMask = 128;\n this.v4 = false;\n this.zone = '';\n // #region Attributes\n /**\n * Returns true if the given address is in the subnet of the current address\n * @memberof Address6\n * @instance\n * @returns {boolean}\n */\n this.isInSubnet = common.isInSubnet;\n /**\n * Returns true if the address is correct, false otherwise\n * @memberof Address6\n * @instance\n * @returns {boolean}\n */\n this.isCorrect = common.isCorrect(constants6.BITS);\n if (optionalGroups === undefined) {\n this.groups = constants6.GROUPS;\n }\n else {\n this.groups = optionalGroups;\n }\n this.address = address;\n const subnet = constants6.RE_SUBNET_STRING.exec(address);\n if (subnet) {\n this.parsedSubnet = subnet[0].replace('/', '');\n this.subnetMask = parseInt(this.parsedSubnet, 10);\n this.subnet = `/${this.subnetMask}`;\n if (Number.isNaN(this.subnetMask) ||\n this.subnetMask < 0 ||\n this.subnetMask > constants6.BITS) {\n throw new address_error_1.AddressError('Invalid subnet mask.');\n }\n address = address.replace(constants6.RE_SUBNET_STRING, '');\n }\n else if (/\\//.test(address)) {\n throw new address_error_1.AddressError('Invalid subnet mask.');\n }\n const zone = constants6.RE_ZONE_STRING.exec(address);\n if (zone) {\n this.zone = zone[0];\n address = address.replace(constants6.RE_ZONE_STRING, '');\n }\n this.addressMinusSuffix = address;\n this.parsedAddress = this.parse(this.addressMinusSuffix);\n }\n static isValid(address) {\n try {\n // eslint-disable-next-line no-new\n new Address6(address);\n return true;\n }\n catch (e) {\n return false;\n }\n }\n /**\n * Convert a BigInteger to a v6 address object\n * @memberof Address6\n * @static\n * @param {BigInteger} bigInteger - a BigInteger to convert\n * @returns {Address6}\n * @example\n * var bigInteger = new BigInteger('1000000000000');\n * var address = Address6.fromBigInteger(bigInteger);\n * address.correctForm(); // '::e8:d4a5:1000'\n */\n static fromBigInteger(bigInteger) {\n const hex = bigInteger.toString(16).padStart(32, '0');\n const groups = [];\n let i;\n for (i = 0; i < constants6.GROUPS; i++) {\n groups.push(hex.slice(i * 4, (i + 1) * 4));\n }\n return new Address6(groups.join(':'));\n }\n /**\n * Convert a URL (with optional port number) to an address object\n * @memberof Address6\n * @static\n * @param {string} url - a URL with optional port number\n * @example\n * var addressAndPort = Address6.fromURL('http://[ffff::]:8080/foo/');\n * addressAndPort.address.correctForm(); // 'ffff::'\n * addressAndPort.port; // 8080\n */\n static fromURL(url) {\n let host;\n let port = null;\n let result;\n // If we have brackets parse them and find a port\n if (url.indexOf('[') !== -1 && url.indexOf(']:') !== -1) {\n result = constants6.RE_URL_WITH_PORT.exec(url);\n if (result === null) {\n return {\n error: 'failed to parse address with port',\n address: null,\n port: null,\n };\n }\n host = result[1];\n port = result[2];\n // If there's a URL extract the address\n }\n else if (url.indexOf('/') !== -1) {\n // Remove the protocol prefix\n url = url.replace(/^[a-z0-9]+:\\/\\//, '');\n // Parse the address\n result = constants6.RE_URL.exec(url);\n if (result === null) {\n return {\n error: 'failed to parse address from URL',\n address: null,\n port: null,\n };\n }\n host = result[1];\n // Otherwise just assign the URL to the host and let the library parse it\n }\n else {\n host = url;\n }\n // If there's a port convert it to an integer\n if (port) {\n port = parseInt(port, 10);\n // squelch out of range ports\n if (port < 0 || port > 65536) {\n port = null;\n }\n }\n else {\n // Standardize `undefined` to `null`\n port = null;\n }\n return {\n address: new Address6(host),\n port,\n };\n }\n /**\n * Create an IPv6-mapped address given an IPv4 address\n * @memberof Address6\n * @static\n * @param {string} address - An IPv4 address string\n * @returns {Address6}\n * @example\n * var address = Address6.fromAddress4('192.168.0.1');\n * address.correctForm(); // '::ffff:c0a8:1'\n * address.to4in6(); // '::ffff:192.168.0.1'\n */\n static fromAddress4(address) {\n const address4 = new ipv4_1.Address4(address);\n const mask6 = constants6.BITS - (constants4.BITS - address4.subnetMask);\n return new Address6(`::ffff:${address4.correctForm()}/${mask6}`);\n }\n /**\n * Return an address from ip6.arpa form\n * @memberof Address6\n * @static\n * @param {string} arpaFormAddress - an 'ip6.arpa' form address\n * @returns {Adress6}\n * @example\n * var address = Address6.fromArpa(e.f.f.f.3.c.2.6.f.f.f.e.6.6.8.e.1.0.6.7.9.4.e.c.0.0.0.0.1.0.0.2.ip6.arpa.)\n * address.correctForm(); // '2001:0:ce49:7601:e866:efff:62c3:fffe'\n */\n static fromArpa(arpaFormAddress) {\n // remove ending \".ip6.arpa.\" or just \".\"\n let address = arpaFormAddress.replace(/(\\.ip6\\.arpa)?\\.$/, '');\n const semicolonAmount = 7;\n // correct ip6.arpa form with ending removed will be 63 characters\n if (address.length !== 63) {\n throw new address_error_1.AddressError(\"Invalid 'ip6.arpa' form.\");\n }\n const parts = address.split('.').reverse();\n for (let i = semicolonAmount; i > 0; i--) {\n const insertIndex = i * 4;\n parts.splice(insertIndex, 0, ':');\n }\n address = parts.join('');\n return new Address6(address);\n }\n /**\n * Return the Microsoft UNC transcription of the address\n * @memberof Address6\n * @instance\n * @returns {String} the Microsoft UNC transcription of the address\n */\n microsoftTranscription() {\n return (0, sprintf_js_1.sprintf)('%s.ipv6-literal.net', this.correctForm().replace(/:/g, '-'));\n }\n /**\n * Return the first n bits of the address, defaulting to the subnet mask\n * @memberof Address6\n * @instance\n * @param {number} [mask=subnet] - the number of bits to mask\n * @returns {String} the first n bits of the address as a string\n */\n mask(mask = this.subnetMask) {\n return this.getBitsBase2(0, mask);\n }\n /**\n * Return the number of possible subnets of a given size in the address\n * @memberof Address6\n * @instance\n * @param {number} [size=128] - the subnet size\n * @returns {String}\n */\n // TODO: probably useful to have a numeric version of this too\n possibleSubnets(subnetSize = 128) {\n const availableBits = constants6.BITS - this.subnetMask;\n const subnetBits = Math.abs(subnetSize - constants6.BITS);\n const subnetPowers = availableBits - subnetBits;\n if (subnetPowers < 0) {\n return '0';\n }\n return addCommas(new jsbn_1.BigInteger('2', 10).pow(subnetPowers).toString(10));\n }\n /**\n * Helper function getting start address.\n * @memberof Address6\n * @instance\n * @returns {BigInteger}\n */\n _startAddress() {\n return new jsbn_1.BigInteger(this.mask() + '0'.repeat(constants6.BITS - this.subnetMask), 2);\n }\n /**\n * The first address in the range given by this address' subnet\n * Often referred to as the Network Address.\n * @memberof Address6\n * @instance\n * @returns {Address6}\n */\n startAddress() {\n return Address6.fromBigInteger(this._startAddress());\n }\n /**\n * The first host address in the range given by this address's subnet ie\n * the first address after the Network Address\n * @memberof Address6\n * @instance\n * @returns {Address6}\n */\n startAddressExclusive() {\n const adjust = new jsbn_1.BigInteger('1');\n return Address6.fromBigInteger(this._startAddress().add(adjust));\n }\n /**\n * Helper function getting end address.\n * @memberof Address6\n * @instance\n * @returns {BigInteger}\n */\n _endAddress() {\n return new jsbn_1.BigInteger(this.mask() + '1'.repeat(constants6.BITS - this.subnetMask), 2);\n }\n /**\n * The last address in the range given by this address' subnet\n * Often referred to as the Broadcast\n * @memberof Address6\n * @instance\n * @returns {Address6}\n */\n endAddress() {\n return Address6.fromBigInteger(this._endAddress());\n }\n /**\n * The last host address in the range given by this address's subnet ie\n * the last address prior to the Broadcast Address\n * @memberof Address6\n * @instance\n * @returns {Address6}\n */\n endAddressExclusive() {\n const adjust = new jsbn_1.BigInteger('1');\n return Address6.fromBigInteger(this._endAddress().subtract(adjust));\n }\n /**\n * Return the scope of the address\n * @memberof Address6\n * @instance\n * @returns {String}\n */\n getScope() {\n let scope = constants6.SCOPES[this.getBits(12, 16).intValue()];\n if (this.getType() === 'Global unicast' && scope !== 'Link local') {\n scope = 'Global';\n }\n return scope || 'Unknown';\n }\n /**\n * Return the type of the address\n * @memberof Address6\n * @instance\n * @returns {String}\n */\n getType() {\n for (const subnet of Object.keys(constants6.TYPES)) {\n if (this.isInSubnet(new Address6(subnet))) {\n return constants6.TYPES[subnet];\n }\n }\n return 'Global unicast';\n }\n /**\n * Return the bits in the given range as a BigInteger\n * @memberof Address6\n * @instance\n * @returns {BigInteger}\n */\n getBits(start, end) {\n return new jsbn_1.BigInteger(this.getBitsBase2(start, end), 2);\n }\n /**\n * Return the bits in the given range as a base-2 string\n * @memberof Address6\n * @instance\n * @returns {String}\n */\n getBitsBase2(start, end) {\n return this.binaryZeroPad().slice(start, end);\n }\n /**\n * Return the bits in the given range as a base-16 string\n * @memberof Address6\n * @instance\n * @returns {String}\n */\n getBitsBase16(start, end) {\n const length = end - start;\n if (length % 4 !== 0) {\n throw new Error('Length of bits to retrieve must be divisible by four');\n }\n return this.getBits(start, end)\n .toString(16)\n .padStart(length / 4, '0');\n }\n /**\n * Return the bits that are set past the subnet mask length\n * @memberof Address6\n * @instance\n * @returns {String}\n */\n getBitsPastSubnet() {\n return this.getBitsBase2(this.subnetMask, constants6.BITS);\n }\n /**\n * Return the reversed ip6.arpa form of the address\n * @memberof Address6\n * @param {Object} options\n * @param {boolean} options.omitSuffix - omit the \"ip6.arpa\" suffix\n * @instance\n * @returns {String}\n */\n reverseForm(options) {\n if (!options) {\n options = {};\n }\n const characters = Math.floor(this.subnetMask / 4);\n const reversed = this.canonicalForm()\n .replace(/:/g, '')\n .split('')\n .slice(0, characters)\n .reverse()\n .join('.');\n if (characters > 0) {\n if (options.omitSuffix) {\n return reversed;\n }\n return (0, sprintf_js_1.sprintf)('%s.ip6.arpa.', reversed);\n }\n if (options.omitSuffix) {\n return '';\n }\n return 'ip6.arpa.';\n }\n /**\n * Return the correct form of the address\n * @memberof Address6\n * @instance\n * @returns {String}\n */\n correctForm() {\n let i;\n let groups = [];\n let zeroCounter = 0;\n const zeroes = [];\n for (i = 0; i < this.parsedAddress.length; i++) {\n const value = parseInt(this.parsedAddress[i], 16);\n if (value === 0) {\n zeroCounter++;\n }\n if (value !== 0 && zeroCounter > 0) {\n if (zeroCounter > 1) {\n zeroes.push([i - zeroCounter, i - 1]);\n }\n zeroCounter = 0;\n }\n }\n // Do we end with a string of zeroes?\n if (zeroCounter > 1) {\n zeroes.push([this.parsedAddress.length - zeroCounter, this.parsedAddress.length - 1]);\n }\n const zeroLengths = zeroes.map((n) => n[1] - n[0] + 1);\n if (zeroes.length > 0) {\n const index = zeroLengths.indexOf(Math.max(...zeroLengths));\n groups = compact(this.parsedAddress, zeroes[index]);\n }\n else {\n groups = this.parsedAddress;\n }\n for (i = 0; i < groups.length; i++) {\n if (groups[i] !== 'compact') {\n groups[i] = parseInt(groups[i], 16).toString(16);\n }\n }\n let correct = groups.join(':');\n correct = correct.replace(/^compact$/, '::');\n correct = correct.replace(/^compact|compact$/, ':');\n correct = correct.replace(/compact/, '');\n return correct;\n }\n /**\n * Return a zero-padded base-2 string representation of the address\n * @memberof Address6\n * @instance\n * @returns {String}\n * @example\n * var address = new Address6('2001:4860:4001:803::1011');\n * address.binaryZeroPad();\n * // '0010000000000001010010000110000001000000000000010000100000000011\n * // 0000000000000000000000000000000000000000000000000001000000010001'\n */\n binaryZeroPad() {\n return this.bigInteger().toString(2).padStart(constants6.BITS, '0');\n }\n // TODO: Improve the semantics of this helper function\n parse4in6(address) {\n const groups = address.split(':');\n const lastGroup = groups.slice(-1)[0];\n const address4 = lastGroup.match(constants4.RE_ADDRESS);\n if (address4) {\n this.parsedAddress4 = address4[0];\n this.address4 = new ipv4_1.Address4(this.parsedAddress4);\n for (let i = 0; i < this.address4.groups; i++) {\n if (/^0[0-9]+/.test(this.address4.parsedAddress[i])) {\n throw new address_error_1.AddressError(\"IPv4 addresses can't have leading zeroes.\", address.replace(constants4.RE_ADDRESS, this.address4.parsedAddress.map(spanLeadingZeroes4).join('.')));\n }\n }\n this.v4 = true;\n groups[groups.length - 1] = this.address4.toGroup6();\n address = groups.join(':');\n }\n return address;\n }\n // TODO: Make private?\n parse(address) {\n address = this.parse4in6(address);\n const badCharacters = address.match(constants6.RE_BAD_CHARACTERS);\n if (badCharacters) {\n throw new address_error_1.AddressError((0, sprintf_js_1.sprintf)('Bad character%s detected in address: %s', badCharacters.length > 1 ? 's' : '', badCharacters.join('')), address.replace(constants6.RE_BAD_CHARACTERS, '$1'));\n }\n const badAddress = address.match(constants6.RE_BAD_ADDRESS);\n if (badAddress) {\n throw new address_error_1.AddressError((0, sprintf_js_1.sprintf)('Address failed regex: %s', badAddress.join('')), address.replace(constants6.RE_BAD_ADDRESS, '$1'));\n }\n let groups = [];\n const halves = address.split('::');\n if (halves.length === 2) {\n let first = halves[0].split(':');\n let last = halves[1].split(':');\n if (first.length === 1 && first[0] === '') {\n first = [];\n }\n if (last.length === 1 && last[0] === '') {\n last = [];\n }\n const remaining = this.groups - (first.length + last.length);\n if (!remaining) {\n throw new address_error_1.AddressError('Error parsing groups');\n }\n this.elidedGroups = remaining;\n this.elisionBegin = first.length;\n this.elisionEnd = first.length + this.elidedGroups;\n groups = groups.concat(first);\n for (let i = 0; i < remaining; i++) {\n groups.push('0');\n }\n groups = groups.concat(last);\n }\n else if (halves.length === 1) {\n groups = address.split(':');\n this.elidedGroups = 0;\n }\n else {\n throw new address_error_1.AddressError('Too many :: groups found');\n }\n groups = groups.map((group) => (0, sprintf_js_1.sprintf)('%x', parseInt(group, 16)));\n if (groups.length !== this.groups) {\n throw new address_error_1.AddressError('Incorrect number of groups found');\n }\n return groups;\n }\n /**\n * Return the canonical form of the address\n * @memberof Address6\n * @instance\n * @returns {String}\n */\n canonicalForm() {\n return this.parsedAddress.map(paddedHex).join(':');\n }\n /**\n * Return the decimal form of the address\n * @memberof Address6\n * @instance\n * @returns {String}\n */\n decimal() {\n return this.parsedAddress.map((n) => (0, sprintf_js_1.sprintf)('%05d', parseInt(n, 16))).join(':');\n }\n /**\n * Return the address as a BigInteger\n * @memberof Address6\n * @instance\n * @returns {BigInteger}\n */\n bigInteger() {\n return new jsbn_1.BigInteger(this.parsedAddress.map(paddedHex).join(''), 16);\n }\n /**\n * Return the last two groups of this address as an IPv4 address string\n * @memberof Address6\n * @instance\n * @returns {Address4}\n * @example\n * var address = new Address6('2001:4860:4001::1825:bf11');\n * address.to4().correctForm(); // '24.37.191.17'\n */\n to4() {\n const binary = this.binaryZeroPad().split('');\n return ipv4_1.Address4.fromHex(new jsbn_1.BigInteger(binary.slice(96, 128).join(''), 2).toString(16));\n }\n /**\n * Return the v4-in-v6 form of the address\n * @memberof Address6\n * @instance\n * @returns {String}\n */\n to4in6() {\n const address4 = this.to4();\n const address6 = new Address6(this.parsedAddress.slice(0, 6).join(':'), 6);\n const correct = address6.correctForm();\n let infix = '';\n if (!/:$/.test(correct)) {\n infix = ':';\n }\n return correct + infix + address4.address;\n }\n /**\n * Return an object containing the Teredo properties of the address\n * @memberof Address6\n * @instance\n * @returns {Object}\n */\n inspectTeredo() {\n /*\n - Bits 0 to 31 are set to the Teredo prefix (normally 2001:0000::/32).\n - Bits 32 to 63 embed the primary IPv4 address of the Teredo server that\n is used.\n - Bits 64 to 79 can be used to define some flags. Currently only the\n higher order bit is used; it is set to 1 if the Teredo client is\n located behind a cone NAT, 0 otherwise. For Microsoft's Windows Vista\n and Windows Server 2008 implementations, more bits are used. In those\n implementations, the format for these 16 bits is \"CRAAAAUG AAAAAAAA\",\n where \"C\" remains the \"Cone\" flag. The \"R\" bit is reserved for future\n use. The \"U\" bit is for the Universal/Local flag (set to 0). The \"G\" bit\n is Individual/Group flag (set to 0). The A bits are set to a 12-bit\n randomly generated number chosen by the Teredo client to introduce\n additional protection for the Teredo node against IPv6-based scanning\n attacks.\n - Bits 80 to 95 contains the obfuscated UDP port number. This is the\n port number that is mapped by the NAT to the Teredo client with all\n bits inverted.\n - Bits 96 to 127 contains the obfuscated IPv4 address. This is the\n public IPv4 address of the NAT with all bits inverted.\n */\n const prefix = this.getBitsBase16(0, 32);\n const udpPort = this.getBits(80, 96).xor(new jsbn_1.BigInteger('ffff', 16)).toString();\n const server4 = ipv4_1.Address4.fromHex(this.getBitsBase16(32, 64));\n const client4 = ipv4_1.Address4.fromHex(this.getBits(96, 128).xor(new jsbn_1.BigInteger('ffffffff', 16)).toString(16));\n const flags = this.getBits(64, 80);\n const flagsBase2 = this.getBitsBase2(64, 80);\n const coneNat = flags.testBit(15);\n const reserved = flags.testBit(14);\n const groupIndividual = flags.testBit(8);\n const universalLocal = flags.testBit(9);\n const nonce = new jsbn_1.BigInteger(flagsBase2.slice(2, 6) + flagsBase2.slice(8, 16), 2).toString(10);\n return {\n prefix: (0, sprintf_js_1.sprintf)('%s:%s', prefix.slice(0, 4), prefix.slice(4, 8)),\n server4: server4.address,\n client4: client4.address,\n flags: flagsBase2,\n coneNat,\n microsoft: {\n reserved,\n universalLocal,\n groupIndividual,\n nonce,\n },\n udpPort,\n };\n }\n /**\n * Return an object containing the 6to4 properties of the address\n * @memberof Address6\n * @instance\n * @returns {Object}\n */\n inspect6to4() {\n /*\n - Bits 0 to 15 are set to the 6to4 prefix (2002::/16).\n - Bits 16 to 48 embed the IPv4 address of the 6to4 gateway that is used.\n */\n const prefix = this.getBitsBase16(0, 16);\n const gateway = ipv4_1.Address4.fromHex(this.getBitsBase16(16, 48));\n return {\n prefix: (0, sprintf_js_1.sprintf)('%s', prefix.slice(0, 4)),\n gateway: gateway.address,\n };\n }\n /**\n * Return a v6 6to4 address from a v6 v4inv6 address\n * @memberof Address6\n * @instance\n * @returns {Address6}\n */\n to6to4() {\n if (!this.is4()) {\n return null;\n }\n const addr6to4 = [\n '2002',\n this.getBitsBase16(96, 112),\n this.getBitsBase16(112, 128),\n '',\n '/16',\n ].join(':');\n return new Address6(addr6to4);\n }\n /**\n * Return a byte array\n * @memberof Address6\n * @instance\n * @returns {Array}\n */\n toByteArray() {\n const byteArray = this.bigInteger().toByteArray();\n // work around issue where `toByteArray` returns a leading 0 element\n if (byteArray.length === 17 && byteArray[0] === 0) {\n return byteArray.slice(1);\n }\n return byteArray;\n }\n /**\n * Return an unsigned byte array\n * @memberof Address6\n * @instance\n * @returns {Array}\n */\n toUnsignedByteArray() {\n return this.toByteArray().map(unsignByte);\n }\n /**\n * Convert a byte array to an Address6 object\n * @memberof Address6\n * @static\n * @returns {Address6}\n */\n static fromByteArray(bytes) {\n return this.fromUnsignedByteArray(bytes.map(unsignByte));\n }\n /**\n * Convert an unsigned byte array to an Address6 object\n * @memberof Address6\n * @static\n * @returns {Address6}\n */\n static fromUnsignedByteArray(bytes) {\n const BYTE_MAX = new jsbn_1.BigInteger('256', 10);\n let result = new jsbn_1.BigInteger('0', 10);\n let multiplier = new jsbn_1.BigInteger('1', 10);\n for (let i = bytes.length - 1; i >= 0; i--) {\n result = result.add(multiplier.multiply(new jsbn_1.BigInteger(bytes[i].toString(10), 10)));\n multiplier = multiplier.multiply(BYTE_MAX);\n }\n return Address6.fromBigInteger(result);\n }\n /**\n * Returns true if the address is in the canonical form, false otherwise\n * @memberof Address6\n * @instance\n * @returns {boolean}\n */\n isCanonical() {\n return this.addressMinusSuffix === this.canonicalForm();\n }\n /**\n * Returns true if the address is a link local address, false otherwise\n * @memberof Address6\n * @instance\n * @returns {boolean}\n */\n isLinkLocal() {\n // Zeroes are required, i.e. we can't check isInSubnet with 'fe80::/10'\n if (this.getBitsBase2(0, 64) ===\n '1111111010000000000000000000000000000000000000000000000000000000') {\n return true;\n }\n return false;\n }\n /**\n * Returns true if the address is a multicast address, false otherwise\n * @memberof Address6\n * @instance\n * @returns {boolean}\n */\n isMulticast() {\n return this.getType() === 'Multicast';\n }\n /**\n * Returns true if the address is a v4-in-v6 address, false otherwise\n * @memberof Address6\n * @instance\n * @returns {boolean}\n */\n is4() {\n return this.v4;\n }\n /**\n * Returns true if the address is a Teredo address, false otherwise\n * @memberof Address6\n * @instance\n * @returns {boolean}\n */\n isTeredo() {\n return this.isInSubnet(new Address6('2001::/32'));\n }\n /**\n * Returns true if the address is a 6to4 address, false otherwise\n * @memberof Address6\n * @instance\n * @returns {boolean}\n */\n is6to4() {\n return this.isInSubnet(new Address6('2002::/16'));\n }\n /**\n * Returns true if the address is a loopback address, false otherwise\n * @memberof Address6\n * @instance\n * @returns {boolean}\n */\n isLoopback() {\n return this.getType() === 'Loopback';\n }\n // #endregion\n // #region HTML\n /**\n * @returns {String} the address in link form with a default port of 80\n */\n href(optionalPort) {\n if (optionalPort === undefined) {\n optionalPort = '';\n }\n else {\n optionalPort = (0, sprintf_js_1.sprintf)(':%s', optionalPort);\n }\n return (0, sprintf_js_1.sprintf)('http://[%s]%s/', this.correctForm(), optionalPort);\n }\n /**\n * @returns {String} a link suitable for conveying the address via a URL hash\n */\n link(options) {\n if (!options) {\n options = {};\n }\n if (options.className === undefined) {\n options.className = '';\n }\n if (options.prefix === undefined) {\n options.prefix = '/#address=';\n }\n if (options.v4 === undefined) {\n options.v4 = false;\n }\n let formFunction = this.correctForm;\n if (options.v4) {\n formFunction = this.to4in6;\n }\n if (options.className) {\n return (0, sprintf_js_1.sprintf)('%2$s', options.prefix, formFunction.call(this), options.className);\n }\n return (0, sprintf_js_1.sprintf)('%2$s', options.prefix, formFunction.call(this));\n }\n /**\n * Groups an address\n * @returns {String}\n */\n group() {\n if (this.elidedGroups === 0) {\n // The simple case\n return helpers.simpleGroup(this.address).join(':');\n }\n assert(typeof this.elidedGroups === 'number');\n assert(typeof this.elisionBegin === 'number');\n // The elided case\n const output = [];\n const [left, right] = this.address.split('::');\n if (left.length) {\n output.push(...helpers.simpleGroup(left));\n }\n else {\n output.push('');\n }\n const classes = ['hover-group'];\n for (let i = this.elisionBegin; i < this.elisionBegin + this.elidedGroups; i++) {\n classes.push((0, sprintf_js_1.sprintf)('group-%d', i));\n }\n output.push((0, sprintf_js_1.sprintf)('', classes.join(' ')));\n if (right.length) {\n output.push(...helpers.simpleGroup(right, this.elisionEnd));\n }\n else {\n output.push('');\n }\n if (this.is4()) {\n assert(this.address4 instanceof ipv4_1.Address4);\n output.pop();\n output.push(this.address4.groupForV6());\n }\n return output.join(':');\n }\n // #endregion\n // #region Regular expressions\n /**\n * Generate a regular expression string that can be used to find or validate\n * all variations of this address\n * @memberof Address6\n * @instance\n * @param {boolean} substringSearch\n * @returns {string}\n */\n regularExpressionString(substringSearch = false) {\n let output = [];\n // TODO: revisit why this is necessary\n const address6 = new Address6(this.correctForm());\n if (address6.elidedGroups === 0) {\n // The simple case\n output.push((0, regular_expressions_1.simpleRegularExpression)(address6.parsedAddress));\n }\n else if (address6.elidedGroups === constants6.GROUPS) {\n // A completely elided address\n output.push((0, regular_expressions_1.possibleElisions)(constants6.GROUPS));\n }\n else {\n // A partially elided address\n const halves = address6.address.split('::');\n if (halves[0].length) {\n output.push((0, regular_expressions_1.simpleRegularExpression)(halves[0].split(':')));\n }\n assert(typeof address6.elidedGroups === 'number');\n output.push((0, regular_expressions_1.possibleElisions)(address6.elidedGroups, halves[0].length !== 0, halves[1].length !== 0));\n if (halves[1].length) {\n output.push((0, regular_expressions_1.simpleRegularExpression)(halves[1].split(':')));\n }\n output = [output.join(':')];\n }\n if (!substringSearch) {\n output = [\n '(?=^|',\n regular_expressions_1.ADDRESS_BOUNDARY,\n '|[^\\\\w\\\\:])(',\n ...output,\n ')(?=[^\\\\w\\\\:]|',\n regular_expressions_1.ADDRESS_BOUNDARY,\n '|$)',\n ];\n }\n return output.join('');\n }\n /**\n * Generate a regular expression that can be used to find or validate all\n * variations of this address.\n * @memberof Address6\n * @instance\n * @param {boolean} substringSearch\n * @returns {RegExp}\n */\n regularExpression(substringSearch = false) {\n return new RegExp(this.regularExpressionString(substringSearch), 'i');\n }\n}\nexports.Address6 = Address6;\n//# sourceMappingURL=ipv6.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.v6 = exports.AddressError = exports.Address6 = exports.Address4 = void 0;\nconst ipv4_1 = require(\"./ipv4\");\nObject.defineProperty(exports, \"Address4\", { enumerable: true, get: function () { return ipv4_1.Address4; } });\nconst ipv6_1 = require(\"./ipv6\");\nObject.defineProperty(exports, \"Address6\", { enumerable: true, get: function () { return ipv6_1.Address6; } });\nconst address_error_1 = require(\"./address-error\");\nObject.defineProperty(exports, \"AddressError\", { enumerable: true, get: function () { return address_error_1.AddressError; } });\nconst helpers = __importStar(require(\"./v6/helpers\"));\nexports.v6 = { helpers };\n//# sourceMappingURL=ip-address.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ipToBuffer = exports.int32ToIpv4 = exports.ipv4ToInt32 = exports.validateSocksClientChainOptions = exports.validateSocksClientOptions = void 0;\nconst util_1 = require(\"./util\");\nconst constants_1 = require(\"./constants\");\nconst stream = require(\"stream\");\nconst ip_address_1 = require(\"ip-address\");\nconst net = require(\"net\");\n/**\n * Validates the provided SocksClientOptions\n * @param options { SocksClientOptions }\n * @param acceptedCommands { string[] } A list of accepted SocksProxy commands.\n */\nfunction validateSocksClientOptions(options, acceptedCommands = ['connect', 'bind', 'associate']) {\n // Check SOCKs command option.\n if (!constants_1.SocksCommand[options.command]) {\n throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksCommand, options);\n }\n // Check SocksCommand for acceptable command.\n if (acceptedCommands.indexOf(options.command) === -1) {\n throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksCommandForOperation, options);\n }\n // Check destination\n if (!isValidSocksRemoteHost(options.destination)) {\n throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsDestination, options);\n }\n // Check SOCKS proxy to use\n if (!isValidSocksProxy(options.proxy)) {\n throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsProxy, options);\n }\n // Validate custom auth (if set)\n validateCustomProxyAuth(options.proxy, options);\n // Check timeout\n if (options.timeout && !isValidTimeoutValue(options.timeout)) {\n throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsTimeout, options);\n }\n // Check existing_socket (if provided)\n if (options.existing_socket &&\n !(options.existing_socket instanceof stream.Duplex)) {\n throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsExistingSocket, options);\n }\n}\nexports.validateSocksClientOptions = validateSocksClientOptions;\n/**\n * Validates the SocksClientChainOptions\n * @param options { SocksClientChainOptions }\n */\nfunction validateSocksClientChainOptions(options) {\n // Only connect is supported when chaining.\n if (options.command !== 'connect') {\n throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksCommandChain, options);\n }\n // Check destination\n if (!isValidSocksRemoteHost(options.destination)) {\n throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsDestination, options);\n }\n // Validate proxies (length)\n if (!(options.proxies &&\n Array.isArray(options.proxies) &&\n options.proxies.length >= 2)) {\n throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsProxiesLength, options);\n }\n // Validate proxies\n options.proxies.forEach((proxy) => {\n if (!isValidSocksProxy(proxy)) {\n throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsProxy, options);\n }\n // Validate custom auth (if set)\n validateCustomProxyAuth(proxy, options);\n });\n // Check timeout\n if (options.timeout && !isValidTimeoutValue(options.timeout)) {\n throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsTimeout, options);\n }\n}\nexports.validateSocksClientChainOptions = validateSocksClientChainOptions;\nfunction validateCustomProxyAuth(proxy, options) {\n if (proxy.custom_auth_method !== undefined) {\n // Invalid auth method range\n if (proxy.custom_auth_method < constants_1.SOCKS5_CUSTOM_AUTH_START ||\n proxy.custom_auth_method > constants_1.SOCKS5_CUSTOM_AUTH_END) {\n throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsCustomAuthRange, options);\n }\n // Missing custom_auth_request_handler\n if (proxy.custom_auth_request_handler === undefined ||\n typeof proxy.custom_auth_request_handler !== 'function') {\n throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsCustomAuthOptions, options);\n }\n // Missing custom_auth_response_size\n if (proxy.custom_auth_response_size === undefined) {\n throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsCustomAuthOptions, options);\n }\n // Missing/invalid custom_auth_response_handler\n if (proxy.custom_auth_response_handler === undefined ||\n typeof proxy.custom_auth_response_handler !== 'function') {\n throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsCustomAuthOptions, options);\n }\n }\n}\n/**\n * Validates a SocksRemoteHost\n * @param remoteHost { SocksRemoteHost }\n */\nfunction isValidSocksRemoteHost(remoteHost) {\n return (remoteHost &&\n typeof remoteHost.host === 'string' &&\n typeof remoteHost.port === 'number' &&\n remoteHost.port >= 0 &&\n remoteHost.port <= 65535);\n}\n/**\n * Validates a SocksProxy\n * @param proxy { SocksProxy }\n */\nfunction isValidSocksProxy(proxy) {\n return (proxy &&\n (typeof proxy.host === 'string' || typeof proxy.ipaddress === 'string') &&\n typeof proxy.port === 'number' &&\n proxy.port >= 0 &&\n proxy.port <= 65535 &&\n (proxy.type === 4 || proxy.type === 5));\n}\n/**\n * Validates a timeout value.\n * @param value { Number }\n */\nfunction isValidTimeoutValue(value) {\n return typeof value === 'number' && value > 0;\n}\nfunction ipv4ToInt32(ip) {\n const address = new ip_address_1.Address4(ip);\n // Convert the IPv4 address parts to an integer\n return address.toArray().reduce((acc, part) => (acc << 8) + part, 0);\n}\nexports.ipv4ToInt32 = ipv4ToInt32;\nfunction int32ToIpv4(int32) {\n // Extract each byte (octet) from the 32-bit integer\n const octet1 = (int32 >>> 24) & 0xff;\n const octet2 = (int32 >>> 16) & 0xff;\n const octet3 = (int32 >>> 8) & 0xff;\n const octet4 = int32 & 0xff;\n // Combine the octets into a string in IPv4 format\n return [octet1, octet2, octet3, octet4].join('.');\n}\nexports.int32ToIpv4 = int32ToIpv4;\nfunction ipToBuffer(ip) {\n if (net.isIPv4(ip)) {\n // Handle IPv4 addresses\n const address = new ip_address_1.Address4(ip);\n return Buffer.from(address.toArray());\n }\n else if (net.isIPv6(ip)) {\n // Handle IPv6 addresses\n const address = new ip_address_1.Address6(ip);\n return Buffer.from(address\n .canonicalForm()\n .split(':')\n .map((segment) => segment.padStart(4, '0'))\n .join(''), 'hex');\n }\n else {\n throw new Error('Invalid IP address format');\n }\n}\nexports.ipToBuffer = ipToBuffer;\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReceiveBuffer = void 0;\nclass ReceiveBuffer {\n constructor(size = 4096) {\n this.buffer = Buffer.allocUnsafe(size);\n this.offset = 0;\n this.originalSize = size;\n }\n get length() {\n return this.offset;\n }\n append(data) {\n if (!Buffer.isBuffer(data)) {\n throw new Error('Attempted to append a non-buffer instance to ReceiveBuffer.');\n }\n if (this.offset + data.length >= this.buffer.length) {\n const tmp = this.buffer;\n this.buffer = Buffer.allocUnsafe(Math.max(this.buffer.length + this.originalSize, this.buffer.length + data.length));\n tmp.copy(this.buffer);\n }\n data.copy(this.buffer, this.offset);\n return (this.offset += data.length);\n }\n peek(length) {\n if (length > this.offset) {\n throw new Error('Attempted to read beyond the bounds of the managed internal data.');\n }\n return this.buffer.slice(0, length);\n }\n get(length) {\n if (length > this.offset) {\n throw new Error('Attempted to read beyond the bounds of the managed internal data.');\n }\n const value = Buffer.allocUnsafe(length);\n this.buffer.slice(0, length).copy(value);\n this.buffer.copyWithin(0, length, length + this.offset - length);\n this.offset -= length;\n return value;\n }\n}\nexports.ReceiveBuffer = ReceiveBuffer;\n//# sourceMappingURL=receivebuffer.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SocksClientError = exports.SocksClient = void 0;\nconst events_1 = require(\"events\");\nconst net = require(\"net\");\nconst smart_buffer_1 = require(\"smart-buffer\");\nconst constants_1 = require(\"../common/constants\");\nconst helpers_1 = require(\"../common/helpers\");\nconst receivebuffer_1 = require(\"../common/receivebuffer\");\nconst util_1 = require(\"../common/util\");\nObject.defineProperty(exports, \"SocksClientError\", { enumerable: true, get: function () { return util_1.SocksClientError; } });\nconst ip_address_1 = require(\"ip-address\");\nclass SocksClient extends events_1.EventEmitter {\n constructor(options) {\n super();\n this.options = Object.assign({}, options);\n // Validate SocksClientOptions\n (0, helpers_1.validateSocksClientOptions)(options);\n // Default state\n this.setState(constants_1.SocksClientState.Created);\n }\n /**\n * Creates a new SOCKS connection.\n *\n * Note: Supports callbacks and promises. Only supports the connect command.\n * @param options { SocksClientOptions } Options.\n * @param callback { Function } An optional callback function.\n * @returns { Promise }\n */\n static createConnection(options, callback) {\n return new Promise((resolve, reject) => {\n // Validate SocksClientOptions\n try {\n (0, helpers_1.validateSocksClientOptions)(options, ['connect']);\n }\n catch (err) {\n if (typeof callback === 'function') {\n callback(err);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return resolve(err); // Resolves pending promise (prevents memory leaks).\n }\n else {\n return reject(err);\n }\n }\n const client = new SocksClient(options);\n client.connect(options.existing_socket);\n client.once('established', (info) => {\n client.removeAllListeners();\n if (typeof callback === 'function') {\n callback(null, info);\n resolve(info); // Resolves pending promise (prevents memory leaks).\n }\n else {\n resolve(info);\n }\n });\n // Error occurred, failed to establish connection.\n client.once('error', (err) => {\n client.removeAllListeners();\n if (typeof callback === 'function') {\n callback(err);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve(err); // Resolves pending promise (prevents memory leaks).\n }\n else {\n reject(err);\n }\n });\n });\n }\n /**\n * Creates a new SOCKS connection chain to a destination host through 2 or more SOCKS proxies.\n *\n * Note: Supports callbacks and promises. Only supports the connect method.\n * Note: Implemented via createConnection() factory function.\n * @param options { SocksClientChainOptions } Options\n * @param callback { Function } An optional callback function.\n * @returns { Promise }\n */\n static createConnectionChain(options, callback) {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n // Validate SocksClientChainOptions\n try {\n (0, helpers_1.validateSocksClientChainOptions)(options);\n }\n catch (err) {\n if (typeof callback === 'function') {\n callback(err);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return resolve(err); // Resolves pending promise (prevents memory leaks).\n }\n else {\n return reject(err);\n }\n }\n // Shuffle proxies\n if (options.randomizeChain) {\n (0, util_1.shuffleArray)(options.proxies);\n }\n try {\n let sock;\n for (let i = 0; i < options.proxies.length; i++) {\n const nextProxy = options.proxies[i];\n // If we've reached the last proxy in the chain, the destination is the actual destination, otherwise it's the next proxy.\n const nextDestination = i === options.proxies.length - 1\n ? options.destination\n : {\n host: options.proxies[i + 1].host ||\n options.proxies[i + 1].ipaddress,\n port: options.proxies[i + 1].port,\n };\n // Creates the next connection in the chain.\n const result = yield SocksClient.createConnection({\n command: 'connect',\n proxy: nextProxy,\n destination: nextDestination,\n existing_socket: sock,\n });\n // If sock is undefined, assign it here.\n sock = sock || result.socket;\n }\n if (typeof callback === 'function') {\n callback(null, { socket: sock });\n resolve({ socket: sock }); // Resolves pending promise (prevents memory leaks).\n }\n else {\n resolve({ socket: sock });\n }\n }\n catch (err) {\n if (typeof callback === 'function') {\n callback(err);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve(err); // Resolves pending promise (prevents memory leaks).\n }\n else {\n reject(err);\n }\n }\n }));\n }\n /**\n * Creates a SOCKS UDP Frame.\n * @param options\n */\n static createUDPFrame(options) {\n const buff = new smart_buffer_1.SmartBuffer();\n buff.writeUInt16BE(0);\n buff.writeUInt8(options.frameNumber || 0);\n // IPv4/IPv6/Hostname\n if (net.isIPv4(options.remoteHost.host)) {\n buff.writeUInt8(constants_1.Socks5HostType.IPv4);\n buff.writeUInt32BE((0, helpers_1.ipv4ToInt32)(options.remoteHost.host));\n }\n else if (net.isIPv6(options.remoteHost.host)) {\n buff.writeUInt8(constants_1.Socks5HostType.IPv6);\n buff.writeBuffer((0, helpers_1.ipToBuffer)(options.remoteHost.host));\n }\n else {\n buff.writeUInt8(constants_1.Socks5HostType.Hostname);\n buff.writeUInt8(Buffer.byteLength(options.remoteHost.host));\n buff.writeString(options.remoteHost.host);\n }\n // Port\n buff.writeUInt16BE(options.remoteHost.port);\n // Data\n buff.writeBuffer(options.data);\n return buff.toBuffer();\n }\n /**\n * Parses a SOCKS UDP frame.\n * @param data\n */\n static parseUDPFrame(data) {\n const buff = smart_buffer_1.SmartBuffer.fromBuffer(data);\n buff.readOffset = 2;\n const frameNumber = buff.readUInt8();\n const hostType = buff.readUInt8();\n let remoteHost;\n if (hostType === constants_1.Socks5HostType.IPv4) {\n remoteHost = (0, helpers_1.int32ToIpv4)(buff.readUInt32BE());\n }\n else if (hostType === constants_1.Socks5HostType.IPv6) {\n remoteHost = ip_address_1.Address6.fromByteArray(Array.from(buff.readBuffer(16))).canonicalForm();\n }\n else {\n remoteHost = buff.readString(buff.readUInt8());\n }\n const remotePort = buff.readUInt16BE();\n return {\n frameNumber,\n remoteHost: {\n host: remoteHost,\n port: remotePort,\n },\n data: buff.readBuffer(),\n };\n }\n /**\n * Internal state setter. If the SocksClient is in an error state, it cannot be changed to a non error state.\n */\n setState(newState) {\n if (this.state !== constants_1.SocksClientState.Error) {\n this.state = newState;\n }\n }\n /**\n * Starts the connection establishment to the proxy and destination.\n * @param existingSocket Connected socket to use instead of creating a new one (internal use).\n */\n connect(existingSocket) {\n this.onDataReceived = (data) => this.onDataReceivedHandler(data);\n this.onClose = () => this.onCloseHandler();\n this.onError = (err) => this.onErrorHandler(err);\n this.onConnect = () => this.onConnectHandler();\n // Start timeout timer (defaults to 30 seconds)\n const timer = setTimeout(() => this.onEstablishedTimeout(), this.options.timeout || constants_1.DEFAULT_TIMEOUT);\n // check whether unref is available as it differs from browser to NodeJS (#33)\n if (timer.unref && typeof timer.unref === 'function') {\n timer.unref();\n }\n // If an existing socket is provided, use it to negotiate SOCKS handshake. Otherwise create a new Socket.\n if (existingSocket) {\n this.socket = existingSocket;\n }\n else {\n this.socket = new net.Socket();\n }\n // Attach Socket error handlers.\n this.socket.once('close', this.onClose);\n this.socket.once('error', this.onError);\n this.socket.once('connect', this.onConnect);\n this.socket.on('data', this.onDataReceived);\n this.setState(constants_1.SocksClientState.Connecting);\n this.receiveBuffer = new receivebuffer_1.ReceiveBuffer();\n if (existingSocket) {\n this.socket.emit('connect');\n }\n else {\n this.socket.connect(this.getSocketOptions());\n if (this.options.set_tcp_nodelay !== undefined &&\n this.options.set_tcp_nodelay !== null) {\n this.socket.setNoDelay(!!this.options.set_tcp_nodelay);\n }\n }\n // Listen for established event so we can re-emit any excess data received during handshakes.\n this.prependOnceListener('established', (info) => {\n setImmediate(() => {\n if (this.receiveBuffer.length > 0) {\n const excessData = this.receiveBuffer.get(this.receiveBuffer.length);\n info.socket.emit('data', excessData);\n }\n info.socket.resume();\n });\n });\n }\n // Socket options (defaults host/port to options.proxy.host/options.proxy.port)\n getSocketOptions() {\n return Object.assign(Object.assign({}, this.options.socket_options), { host: this.options.proxy.host || this.options.proxy.ipaddress, port: this.options.proxy.port });\n }\n /**\n * Handles internal Socks timeout callback.\n * Note: If the Socks client is not BoundWaitingForConnection or Established, the connection will be closed.\n */\n onEstablishedTimeout() {\n if (this.state !== constants_1.SocksClientState.Established &&\n this.state !== constants_1.SocksClientState.BoundWaitingForConnection) {\n this.closeSocket(constants_1.ERRORS.ProxyConnectionTimedOut);\n }\n }\n /**\n * Handles Socket connect event.\n */\n onConnectHandler() {\n this.setState(constants_1.SocksClientState.Connected);\n // Send initial handshake.\n if (this.options.proxy.type === 4) {\n this.sendSocks4InitialHandshake();\n }\n else {\n this.sendSocks5InitialHandshake();\n }\n this.setState(constants_1.SocksClientState.SentInitialHandshake);\n }\n /**\n * Handles Socket data event.\n * @param data\n */\n onDataReceivedHandler(data) {\n /*\n All received data is appended to a ReceiveBuffer.\n This makes sure that all the data we need is received before we attempt to process it.\n */\n this.receiveBuffer.append(data);\n // Process data that we have.\n this.processData();\n }\n /**\n * Handles processing of the data we have received.\n */\n processData() {\n // If we have enough data to process the next step in the SOCKS handshake, proceed.\n while (this.state !== constants_1.SocksClientState.Established &&\n this.state !== constants_1.SocksClientState.Error &&\n this.receiveBuffer.length >= this.nextRequiredPacketBufferSize) {\n // Sent initial handshake, waiting for response.\n if (this.state === constants_1.SocksClientState.SentInitialHandshake) {\n if (this.options.proxy.type === 4) {\n // Socks v4 only has one handshake response.\n this.handleSocks4FinalHandshakeResponse();\n }\n else {\n // Socks v5 has two handshakes, handle initial one here.\n this.handleInitialSocks5HandshakeResponse();\n }\n // Sent auth request for Socks v5, waiting for response.\n }\n else if (this.state === constants_1.SocksClientState.SentAuthentication) {\n this.handleInitialSocks5AuthenticationHandshakeResponse();\n // Sent final Socks v5 handshake, waiting for final response.\n }\n else if (this.state === constants_1.SocksClientState.SentFinalHandshake) {\n this.handleSocks5FinalHandshakeResponse();\n // Socks BIND established. Waiting for remote connection via proxy.\n }\n else if (this.state === constants_1.SocksClientState.BoundWaitingForConnection) {\n if (this.options.proxy.type === 4) {\n this.handleSocks4IncomingConnectionResponse();\n }\n else {\n this.handleSocks5IncomingConnectionResponse();\n }\n }\n else {\n this.closeSocket(constants_1.ERRORS.InternalError);\n break;\n }\n }\n }\n /**\n * Handles Socket close event.\n * @param had_error\n */\n onCloseHandler() {\n this.closeSocket(constants_1.ERRORS.SocketClosed);\n }\n /**\n * Handles Socket error event.\n * @param err\n */\n onErrorHandler(err) {\n this.closeSocket(err.message);\n }\n /**\n * Removes internal event listeners on the underlying Socket.\n */\n removeInternalSocketHandlers() {\n // Pauses data flow of the socket (this is internally resumed after 'established' is emitted)\n this.socket.pause();\n this.socket.removeListener('data', this.onDataReceived);\n this.socket.removeListener('close', this.onClose);\n this.socket.removeListener('error', this.onError);\n this.socket.removeListener('connect', this.onConnect);\n }\n /**\n * Closes and destroys the underlying Socket. Emits an error event.\n * @param err { String } An error string to include in error event.\n */\n closeSocket(err) {\n // Make sure only one 'error' event is fired for the lifetime of this SocksClient instance.\n if (this.state !== constants_1.SocksClientState.Error) {\n // Set internal state to Error.\n this.setState(constants_1.SocksClientState.Error);\n // Destroy Socket\n this.socket.destroy();\n // Remove internal listeners\n this.removeInternalSocketHandlers();\n // Fire 'error' event.\n this.emit('error', new util_1.SocksClientError(err, this.options));\n }\n }\n /**\n * Sends initial Socks v4 handshake request.\n */\n sendSocks4InitialHandshake() {\n const userId = this.options.proxy.userId || '';\n const buff = new smart_buffer_1.SmartBuffer();\n buff.writeUInt8(0x04);\n buff.writeUInt8(constants_1.SocksCommand[this.options.command]);\n buff.writeUInt16BE(this.options.destination.port);\n // Socks 4 (IPv4)\n if (net.isIPv4(this.options.destination.host)) {\n buff.writeBuffer((0, helpers_1.ipToBuffer)(this.options.destination.host));\n buff.writeStringNT(userId);\n // Socks 4a (hostname)\n }\n else {\n buff.writeUInt8(0x00);\n buff.writeUInt8(0x00);\n buff.writeUInt8(0x00);\n buff.writeUInt8(0x01);\n buff.writeStringNT(userId);\n buff.writeStringNT(this.options.destination.host);\n }\n this.nextRequiredPacketBufferSize =\n constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks4Response;\n this.socket.write(buff.toBuffer());\n }\n /**\n * Handles Socks v4 handshake response.\n * @param data\n */\n handleSocks4FinalHandshakeResponse() {\n const data = this.receiveBuffer.get(8);\n if (data[1] !== constants_1.Socks4Response.Granted) {\n this.closeSocket(`${constants_1.ERRORS.Socks4ProxyRejectedConnection} - (${constants_1.Socks4Response[data[1]]})`);\n }\n else {\n // Bind response\n if (constants_1.SocksCommand[this.options.command] === constants_1.SocksCommand.bind) {\n const buff = smart_buffer_1.SmartBuffer.fromBuffer(data);\n buff.readOffset = 2;\n const remoteHost = {\n port: buff.readUInt16BE(),\n host: (0, helpers_1.int32ToIpv4)(buff.readUInt32BE()),\n };\n // If host is 0.0.0.0, set to proxy host.\n if (remoteHost.host === '0.0.0.0') {\n remoteHost.host = this.options.proxy.ipaddress;\n }\n this.setState(constants_1.SocksClientState.BoundWaitingForConnection);\n this.emit('bound', { remoteHost, socket: this.socket });\n // Connect response\n }\n else {\n this.setState(constants_1.SocksClientState.Established);\n this.removeInternalSocketHandlers();\n this.emit('established', { socket: this.socket });\n }\n }\n }\n /**\n * Handles Socks v4 incoming connection request (BIND)\n * @param data\n */\n handleSocks4IncomingConnectionResponse() {\n const data = this.receiveBuffer.get(8);\n if (data[1] !== constants_1.Socks4Response.Granted) {\n this.closeSocket(`${constants_1.ERRORS.Socks4ProxyRejectedIncomingBoundConnection} - (${constants_1.Socks4Response[data[1]]})`);\n }\n else {\n const buff = smart_buffer_1.SmartBuffer.fromBuffer(data);\n buff.readOffset = 2;\n const remoteHost = {\n port: buff.readUInt16BE(),\n host: (0, helpers_1.int32ToIpv4)(buff.readUInt32BE()),\n };\n this.setState(constants_1.SocksClientState.Established);\n this.removeInternalSocketHandlers();\n this.emit('established', { remoteHost, socket: this.socket });\n }\n }\n /**\n * Sends initial Socks v5 handshake request.\n */\n sendSocks5InitialHandshake() {\n const buff = new smart_buffer_1.SmartBuffer();\n // By default we always support no auth.\n const supportedAuthMethods = [constants_1.Socks5Auth.NoAuth];\n // We should only tell the proxy we support user/pass auth if auth info is actually provided.\n // Note: As of Tor v0.3.5.7+, if user/pass auth is an option from the client, by default it will always take priority.\n if (this.options.proxy.userId || this.options.proxy.password) {\n supportedAuthMethods.push(constants_1.Socks5Auth.UserPass);\n }\n // Custom auth method?\n if (this.options.proxy.custom_auth_method !== undefined) {\n supportedAuthMethods.push(this.options.proxy.custom_auth_method);\n }\n // Build handshake packet\n buff.writeUInt8(0x05);\n buff.writeUInt8(supportedAuthMethods.length);\n for (const authMethod of supportedAuthMethods) {\n buff.writeUInt8(authMethod);\n }\n this.nextRequiredPacketBufferSize =\n constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5InitialHandshakeResponse;\n this.socket.write(buff.toBuffer());\n this.setState(constants_1.SocksClientState.SentInitialHandshake);\n }\n /**\n * Handles initial Socks v5 handshake response.\n * @param data\n */\n handleInitialSocks5HandshakeResponse() {\n const data = this.receiveBuffer.get(2);\n if (data[0] !== 0x05) {\n this.closeSocket(constants_1.ERRORS.InvalidSocks5IntiailHandshakeSocksVersion);\n }\n else if (data[1] === constants_1.SOCKS5_NO_ACCEPTABLE_AUTH) {\n this.closeSocket(constants_1.ERRORS.InvalidSocks5InitialHandshakeNoAcceptedAuthType);\n }\n else {\n // If selected Socks v5 auth method is no auth, send final handshake request.\n if (data[1] === constants_1.Socks5Auth.NoAuth) {\n this.socks5ChosenAuthType = constants_1.Socks5Auth.NoAuth;\n this.sendSocks5CommandRequest();\n // If selected Socks v5 auth method is user/password, send auth handshake.\n }\n else if (data[1] === constants_1.Socks5Auth.UserPass) {\n this.socks5ChosenAuthType = constants_1.Socks5Auth.UserPass;\n this.sendSocks5UserPassAuthentication();\n // If selected Socks v5 auth method is the custom_auth_method, send custom handshake.\n }\n else if (data[1] === this.options.proxy.custom_auth_method) {\n this.socks5ChosenAuthType = this.options.proxy.custom_auth_method;\n this.sendSocks5CustomAuthentication();\n }\n else {\n this.closeSocket(constants_1.ERRORS.InvalidSocks5InitialHandshakeUnknownAuthType);\n }\n }\n }\n /**\n * Sends Socks v5 user & password auth handshake.\n *\n * Note: No auth and user/pass are currently supported.\n */\n sendSocks5UserPassAuthentication() {\n const userId = this.options.proxy.userId || '';\n const password = this.options.proxy.password || '';\n const buff = new smart_buffer_1.SmartBuffer();\n buff.writeUInt8(0x01);\n buff.writeUInt8(Buffer.byteLength(userId));\n buff.writeString(userId);\n buff.writeUInt8(Buffer.byteLength(password));\n buff.writeString(password);\n this.nextRequiredPacketBufferSize =\n constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5UserPassAuthenticationResponse;\n this.socket.write(buff.toBuffer());\n this.setState(constants_1.SocksClientState.SentAuthentication);\n }\n sendSocks5CustomAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n this.nextRequiredPacketBufferSize =\n this.options.proxy.custom_auth_response_size;\n this.socket.write(yield this.options.proxy.custom_auth_request_handler());\n this.setState(constants_1.SocksClientState.SentAuthentication);\n });\n }\n handleSocks5CustomAuthHandshakeResponse(data) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.options.proxy.custom_auth_response_handler(data);\n });\n }\n handleSocks5AuthenticationNoAuthHandshakeResponse(data) {\n return __awaiter(this, void 0, void 0, function* () {\n return data[1] === 0x00;\n });\n }\n handleSocks5AuthenticationUserPassHandshakeResponse(data) {\n return __awaiter(this, void 0, void 0, function* () {\n return data[1] === 0x00;\n });\n }\n /**\n * Handles Socks v5 auth handshake response.\n * @param data\n */\n handleInitialSocks5AuthenticationHandshakeResponse() {\n return __awaiter(this, void 0, void 0, function* () {\n this.setState(constants_1.SocksClientState.ReceivedAuthenticationResponse);\n let authResult = false;\n if (this.socks5ChosenAuthType === constants_1.Socks5Auth.NoAuth) {\n authResult = yield this.handleSocks5AuthenticationNoAuthHandshakeResponse(this.receiveBuffer.get(2));\n }\n else if (this.socks5ChosenAuthType === constants_1.Socks5Auth.UserPass) {\n authResult =\n yield this.handleSocks5AuthenticationUserPassHandshakeResponse(this.receiveBuffer.get(2));\n }\n else if (this.socks5ChosenAuthType === this.options.proxy.custom_auth_method) {\n authResult = yield this.handleSocks5CustomAuthHandshakeResponse(this.receiveBuffer.get(this.options.proxy.custom_auth_response_size));\n }\n if (!authResult) {\n this.closeSocket(constants_1.ERRORS.Socks5AuthenticationFailed);\n }\n else {\n this.sendSocks5CommandRequest();\n }\n });\n }\n /**\n * Sends Socks v5 final handshake request.\n */\n sendSocks5CommandRequest() {\n const buff = new smart_buffer_1.SmartBuffer();\n buff.writeUInt8(0x05);\n buff.writeUInt8(constants_1.SocksCommand[this.options.command]);\n buff.writeUInt8(0x00);\n // ipv4, ipv6, domain?\n if (net.isIPv4(this.options.destination.host)) {\n buff.writeUInt8(constants_1.Socks5HostType.IPv4);\n buff.writeBuffer((0, helpers_1.ipToBuffer)(this.options.destination.host));\n }\n else if (net.isIPv6(this.options.destination.host)) {\n buff.writeUInt8(constants_1.Socks5HostType.IPv6);\n buff.writeBuffer((0, helpers_1.ipToBuffer)(this.options.destination.host));\n }\n else {\n buff.writeUInt8(constants_1.Socks5HostType.Hostname);\n buff.writeUInt8(this.options.destination.host.length);\n buff.writeString(this.options.destination.host);\n }\n buff.writeUInt16BE(this.options.destination.port);\n this.nextRequiredPacketBufferSize =\n constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHeader;\n this.socket.write(buff.toBuffer());\n this.setState(constants_1.SocksClientState.SentFinalHandshake);\n }\n /**\n * Handles Socks v5 final handshake response.\n * @param data\n */\n handleSocks5FinalHandshakeResponse() {\n // Peek at available data (we need at least 5 bytes to get the hostname length)\n const header = this.receiveBuffer.peek(5);\n if (header[0] !== 0x05 || header[1] !== constants_1.Socks5Response.Granted) {\n this.closeSocket(`${constants_1.ERRORS.InvalidSocks5FinalHandshakeRejected} - ${constants_1.Socks5Response[header[1]]}`);\n }\n else {\n // Read address type\n const addressType = header[3];\n let remoteHost;\n let buff;\n // IPv4\n if (addressType === constants_1.Socks5HostType.IPv4) {\n // Check if data is available.\n const dataNeeded = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv4;\n if (this.receiveBuffer.length < dataNeeded) {\n this.nextRequiredPacketBufferSize = dataNeeded;\n return;\n }\n buff = smart_buffer_1.SmartBuffer.fromBuffer(this.receiveBuffer.get(dataNeeded).slice(4));\n remoteHost = {\n host: (0, helpers_1.int32ToIpv4)(buff.readUInt32BE()),\n port: buff.readUInt16BE(),\n };\n // If given host is 0.0.0.0, assume remote proxy ip instead.\n if (remoteHost.host === '0.0.0.0') {\n remoteHost.host = this.options.proxy.ipaddress;\n }\n // Hostname\n }\n else if (addressType === constants_1.Socks5HostType.Hostname) {\n const hostLength = header[4];\n const dataNeeded = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHostname(hostLength); // header + host length + host + port\n // Check if data is available.\n if (this.receiveBuffer.length < dataNeeded) {\n this.nextRequiredPacketBufferSize = dataNeeded;\n return;\n }\n buff = smart_buffer_1.SmartBuffer.fromBuffer(this.receiveBuffer.get(dataNeeded).slice(5));\n remoteHost = {\n host: buff.readString(hostLength),\n port: buff.readUInt16BE(),\n };\n // IPv6\n }\n else if (addressType === constants_1.Socks5HostType.IPv6) {\n // Check if data is available.\n const dataNeeded = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv6;\n if (this.receiveBuffer.length < dataNeeded) {\n this.nextRequiredPacketBufferSize = dataNeeded;\n return;\n }\n buff = smart_buffer_1.SmartBuffer.fromBuffer(this.receiveBuffer.get(dataNeeded).slice(4));\n remoteHost = {\n host: ip_address_1.Address6.fromByteArray(Array.from(buff.readBuffer(16))).canonicalForm(),\n port: buff.readUInt16BE(),\n };\n }\n // We have everything we need\n this.setState(constants_1.SocksClientState.ReceivedFinalResponse);\n // If using CONNECT, the client is now in the established state.\n if (constants_1.SocksCommand[this.options.command] === constants_1.SocksCommand.connect) {\n this.setState(constants_1.SocksClientState.Established);\n this.removeInternalSocketHandlers();\n this.emit('established', { remoteHost, socket: this.socket });\n }\n else if (constants_1.SocksCommand[this.options.command] === constants_1.SocksCommand.bind) {\n /* If using BIND, the Socks client is now in BoundWaitingForConnection state.\n This means that the remote proxy server is waiting for a remote connection to the bound port. */\n this.setState(constants_1.SocksClientState.BoundWaitingForConnection);\n this.nextRequiredPacketBufferSize =\n constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHeader;\n this.emit('bound', { remoteHost, socket: this.socket });\n /*\n If using Associate, the Socks client is now Established. And the proxy server is now accepting UDP packets at the\n given bound port. This initial Socks TCP connection must remain open for the UDP relay to continue to work.\n */\n }\n else if (constants_1.SocksCommand[this.options.command] === constants_1.SocksCommand.associate) {\n this.setState(constants_1.SocksClientState.Established);\n this.removeInternalSocketHandlers();\n this.emit('established', {\n remoteHost,\n socket: this.socket,\n });\n }\n }\n }\n /**\n * Handles Socks v5 incoming connection request (BIND).\n */\n handleSocks5IncomingConnectionResponse() {\n // Peek at available data (we need at least 5 bytes to get the hostname length)\n const header = this.receiveBuffer.peek(5);\n if (header[0] !== 0x05 || header[1] !== constants_1.Socks5Response.Granted) {\n this.closeSocket(`${constants_1.ERRORS.Socks5ProxyRejectedIncomingBoundConnection} - ${constants_1.Socks5Response[header[1]]}`);\n }\n else {\n // Read address type\n const addressType = header[3];\n let remoteHost;\n let buff;\n // IPv4\n if (addressType === constants_1.Socks5HostType.IPv4) {\n // Check if data is available.\n const dataNeeded = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv4;\n if (this.receiveBuffer.length < dataNeeded) {\n this.nextRequiredPacketBufferSize = dataNeeded;\n return;\n }\n buff = smart_buffer_1.SmartBuffer.fromBuffer(this.receiveBuffer.get(dataNeeded).slice(4));\n remoteHost = {\n host: (0, helpers_1.int32ToIpv4)(buff.readUInt32BE()),\n port: buff.readUInt16BE(),\n };\n // If given host is 0.0.0.0, assume remote proxy ip instead.\n if (remoteHost.host === '0.0.0.0') {\n remoteHost.host = this.options.proxy.ipaddress;\n }\n // Hostname\n }\n else if (addressType === constants_1.Socks5HostType.Hostname) {\n const hostLength = header[4];\n const dataNeeded = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHostname(hostLength); // header + host length + port\n // Check if data is available.\n if (this.receiveBuffer.length < dataNeeded) {\n this.nextRequiredPacketBufferSize = dataNeeded;\n return;\n }\n buff = smart_buffer_1.SmartBuffer.fromBuffer(this.receiveBuffer.get(dataNeeded).slice(5));\n remoteHost = {\n host: buff.readString(hostLength),\n port: buff.readUInt16BE(),\n };\n // IPv6\n }\n else if (addressType === constants_1.Socks5HostType.IPv6) {\n // Check if data is available.\n const dataNeeded = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv6;\n if (this.receiveBuffer.length < dataNeeded) {\n this.nextRequiredPacketBufferSize = dataNeeded;\n return;\n }\n buff = smart_buffer_1.SmartBuffer.fromBuffer(this.receiveBuffer.get(dataNeeded).slice(4));\n remoteHost = {\n host: ip_address_1.Address6.fromByteArray(Array.from(buff.readBuffer(16))).canonicalForm(),\n port: buff.readUInt16BE(),\n };\n }\n this.setState(constants_1.SocksClientState.Established);\n this.removeInternalSocketHandlers();\n this.emit('established', { remoteHost, socket: this.socket });\n }\n }\n get socksClientOptions() {\n return Object.assign({}, this.options);\n }\n}\nexports.SocksClient = SocksClient;\n//# sourceMappingURL=socksclient.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./client/socksclient\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.req = exports.json = exports.toBuffer = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nasync function toBuffer(stream) {\n let length = 0;\n const chunks = [];\n for await (const chunk of stream) {\n length += chunk.length;\n chunks.push(chunk);\n }\n return Buffer.concat(chunks, length);\n}\nexports.toBuffer = toBuffer;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nasync function json(stream) {\n const buf = await toBuffer(stream);\n const str = buf.toString('utf8');\n try {\n return JSON.parse(str);\n }\n catch (_err) {\n const err = _err;\n err.message += ` (input: ${str})`;\n throw err;\n }\n}\nexports.json = json;\nfunction req(url, opts = {}) {\n const href = typeof url === 'string' ? url : url.href;\n const req = (href.startsWith('https:') ? https : http).request(url, opts);\n const promise = new Promise((resolve, reject) => {\n req\n .once('response', resolve)\n .once('error', reject)\n .end();\n });\n req.then = promise.then.bind(promise);\n return req;\n}\nexports.req = req;\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Agent = void 0;\nconst net = __importStar(require(\"net\"));\nconst http = __importStar(require(\"http\"));\nconst https_1 = require(\"https\");\n__exportStar(require(\"./helpers\"), exports);\nconst INTERNAL = Symbol('AgentBaseInternalState');\nclass Agent extends http.Agent {\n constructor(opts) {\n super(opts);\n this[INTERNAL] = {};\n }\n /**\n * Determine whether this is an `http` or `https` request.\n */\n isSecureEndpoint(options) {\n if (options) {\n // First check the `secureEndpoint` property explicitly, since this\n // means that a parent `Agent` is \"passing through\" to this instance.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (typeof options.secureEndpoint === 'boolean') {\n return options.secureEndpoint;\n }\n // If no explicit `secure` endpoint, check if `protocol` property is\n // set. This will usually be the case since using a full string URL\n // or `URL` instance should be the most common usage.\n if (typeof options.protocol === 'string') {\n return options.protocol === 'https:';\n }\n }\n // Finally, if no `protocol` property was set, then fall back to\n // checking the stack trace of the current call stack, and try to\n // detect the \"https\" module.\n const { stack } = new Error();\n if (typeof stack !== 'string')\n return false;\n return stack\n .split('\\n')\n .some((l) => l.indexOf('(https.js:') !== -1 ||\n l.indexOf('node:https:') !== -1);\n }\n // In order to support async signatures in `connect()` and Node's native\n // connection pooling in `http.Agent`, the array of sockets for each origin\n // has to be updated synchronously. This is so the length of the array is\n // accurate when `addRequest()` is next called. We achieve this by creating a\n // fake socket and adding it to `sockets[origin]` and incrementing\n // `totalSocketCount`.\n incrementSockets(name) {\n // If `maxSockets` and `maxTotalSockets` are both Infinity then there is no\n // need to create a fake socket because Node.js native connection pooling\n // will never be invoked.\n if (this.maxSockets === Infinity && this.maxTotalSockets === Infinity) {\n return null;\n }\n // All instances of `sockets` are expected TypeScript errors. The\n // alternative is to add it as a private property of this class but that\n // will break TypeScript subclassing.\n if (!this.sockets[name]) {\n // @ts-expect-error `sockets` is readonly in `@types/node`\n this.sockets[name] = [];\n }\n const fakeSocket = new net.Socket({ writable: false });\n this.sockets[name].push(fakeSocket);\n // @ts-expect-error `totalSocketCount` isn't defined in `@types/node`\n this.totalSocketCount++;\n return fakeSocket;\n }\n decrementSockets(name, socket) {\n if (!this.sockets[name] || socket === null) {\n return;\n }\n const sockets = this.sockets[name];\n const index = sockets.indexOf(socket);\n if (index !== -1) {\n sockets.splice(index, 1);\n // @ts-expect-error `totalSocketCount` isn't defined in `@types/node`\n this.totalSocketCount--;\n if (sockets.length === 0) {\n // @ts-expect-error `sockets` is readonly in `@types/node`\n delete this.sockets[name];\n }\n }\n }\n // In order to properly update the socket pool, we need to call `getName()` on\n // the core `https.Agent` if it is a secureEndpoint.\n getName(options) {\n const secureEndpoint = typeof options.secureEndpoint === 'boolean'\n ? options.secureEndpoint\n : this.isSecureEndpoint(options);\n if (secureEndpoint) {\n // @ts-expect-error `getName()` isn't defined in `@types/node`\n return https_1.Agent.prototype.getName.call(this, options);\n }\n // @ts-expect-error `getName()` isn't defined in `@types/node`\n return super.getName(options);\n }\n createSocket(req, options, cb) {\n const connectOpts = {\n ...options,\n secureEndpoint: this.isSecureEndpoint(options),\n };\n const name = this.getName(connectOpts);\n const fakeSocket = this.incrementSockets(name);\n Promise.resolve()\n .then(() => this.connect(req, connectOpts))\n .then((socket) => {\n this.decrementSockets(name, fakeSocket);\n if (socket instanceof http.Agent) {\n try {\n // @ts-expect-error `addRequest()` isn't defined in `@types/node`\n return socket.addRequest(req, connectOpts);\n }\n catch (err) {\n return cb(err);\n }\n }\n this[INTERNAL].currentSocket = socket;\n // @ts-expect-error `createSocket()` isn't defined in `@types/node`\n super.createSocket(req, options, cb);\n }, (err) => {\n this.decrementSockets(name, fakeSocket);\n cb(err);\n });\n }\n createConnection() {\n const socket = this[INTERNAL].currentSocket;\n this[INTERNAL].currentSocket = undefined;\n if (!socket) {\n throw new Error('No socket was returned in the `connect()` function');\n }\n return socket;\n }\n get defaultPort() {\n return (this[INTERNAL].defaultPort ??\n (this.protocol === 'https:' ? 443 : 80));\n }\n set defaultPort(v) {\n if (this[INTERNAL]) {\n this[INTERNAL].defaultPort = v;\n }\n }\n get protocol() {\n return (this[INTERNAL].protocol ??\n (this.isSecureEndpoint() ? 'https:' : 'http:'));\n }\n set protocol(v) {\n if (this[INTERNAL]) {\n this[INTERNAL].protocol = v;\n }\n }\n}\nexports.Agent = Agent;\n//# sourceMappingURL=index.js.map","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '')\n\t\t\t.trim()\n\t\t\t.replace(' ', ',')\n\t\t\t.split(',')\n\t\t\t.filter(Boolean);\n\n\t\tfor (const ns of split) {\n\t\t\tif (ns[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(ns.slice(1));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(ns);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the given string matches a namespace template, honoring\n\t * asterisks as wildcards.\n\t *\n\t * @param {String} search\n\t * @param {String} template\n\t * @return {Boolean}\n\t */\n\tfunction matchesTemplate(search, template) {\n\t\tlet searchIndex = 0;\n\t\tlet templateIndex = 0;\n\t\tlet starIndex = -1;\n\t\tlet matchIndex = 0;\n\n\t\twhile (searchIndex < search.length) {\n\t\t\tif (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {\n\t\t\t\t// Match character or proceed with wildcard\n\t\t\t\tif (template[templateIndex] === '*') {\n\t\t\t\t\tstarIndex = templateIndex;\n\t\t\t\t\tmatchIndex = searchIndex;\n\t\t\t\t\ttemplateIndex++; // Skip the '*'\n\t\t\t\t} else {\n\t\t\t\t\tsearchIndex++;\n\t\t\t\t\ttemplateIndex++;\n\t\t\t\t}\n\t\t\t} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition\n\t\t\t\t// Backtrack to the last '*' and try to match more characters\n\t\t\t\ttemplateIndex = starIndex + 1;\n\t\t\t\tmatchIndex++;\n\t\t\t\tsearchIndex = matchIndex;\n\t\t\t} else {\n\t\t\t\treturn false; // No match\n\t\t\t}\n\t\t}\n\n\t\t// Handle trailing '*' in template\n\t\twhile (templateIndex < template.length && template[templateIndex] === '*') {\n\t\t\ttemplateIndex++;\n\t\t}\n\n\t\treturn templateIndex === template.length;\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names,\n\t\t\t...createDebug.skips.map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tfor (const skip of createDebug.skips) {\n\t\t\tif (matchesTemplate(name, skip)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (const ns of createDebug.names) {\n\t\t\tif (matchesTemplate(name, ns)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\t// eslint-disable-next-line no-return-assign\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SocksProxyAgent = void 0;\nconst socks_1 = require(\"socks\");\nconst agent_base_1 = require(\"agent-base\");\nconst debug_1 = __importDefault(require(\"debug\"));\nconst dns = __importStar(require(\"dns\"));\nconst net = __importStar(require(\"net\"));\nconst tls = __importStar(require(\"tls\"));\nconst url_1 = require(\"url\");\nconst debug = (0, debug_1.default)('socks-proxy-agent');\nconst setServernameFromNonIpHost = (options) => {\n if (options.servername === undefined &&\n options.host &&\n !net.isIP(options.host)) {\n return {\n ...options,\n servername: options.host,\n };\n }\n return options;\n};\nfunction parseSocksURL(url) {\n let lookup = false;\n let type = 5;\n const host = url.hostname;\n // From RFC 1928, Section 3: https://tools.ietf.org/html/rfc1928#section-3\n // \"The SOCKS service is conventionally located on TCP port 1080\"\n const port = parseInt(url.port, 10) || 1080;\n // figure out if we want socks v4 or v5, based on the \"protocol\" used.\n // Defaults to 5.\n switch (url.protocol.replace(':', '')) {\n case 'socks4':\n lookup = true;\n type = 4;\n break;\n // pass through\n case 'socks4a':\n type = 4;\n break;\n case 'socks5':\n lookup = true;\n type = 5;\n break;\n // pass through\n case 'socks': // no version specified, default to 5h\n type = 5;\n break;\n case 'socks5h':\n type = 5;\n break;\n default:\n throw new TypeError(`A \"socks\" protocol must be specified! Got: ${String(url.protocol)}`);\n }\n const proxy = {\n host,\n port,\n type,\n };\n if (url.username) {\n Object.defineProperty(proxy, 'userId', {\n value: decodeURIComponent(url.username),\n enumerable: false,\n });\n }\n if (url.password != null) {\n Object.defineProperty(proxy, 'password', {\n value: decodeURIComponent(url.password),\n enumerable: false,\n });\n }\n return { lookup, proxy };\n}\nclass SocksProxyAgent extends agent_base_1.Agent {\n constructor(uri, opts) {\n super(opts);\n const url = typeof uri === 'string' ? new url_1.URL(uri) : uri;\n const { proxy, lookup } = parseSocksURL(url);\n this.shouldLookup = lookup;\n this.proxy = proxy;\n this.timeout = opts?.timeout ?? null;\n this.socketOptions = opts?.socketOptions ?? null;\n }\n /**\n * Initiates a SOCKS connection to the specified SOCKS proxy server,\n * which in turn connects to the specified remote host and port.\n */\n async connect(req, opts) {\n const { shouldLookup, proxy, timeout } = this;\n if (!opts.host) {\n throw new Error('No `host` defined!');\n }\n let { host } = opts;\n const { port, lookup: lookupFn = dns.lookup } = opts;\n if (shouldLookup) {\n // Client-side DNS resolution for \"4\" and \"5\" socks proxy versions.\n host = await new Promise((resolve, reject) => {\n // Use the request's custom lookup, if one was configured:\n lookupFn(host, {}, (err, res) => {\n if (err) {\n reject(err);\n }\n else {\n resolve(res);\n }\n });\n });\n }\n const socksOpts = {\n proxy,\n destination: {\n host,\n port: typeof port === 'number' ? port : parseInt(port, 10),\n },\n command: 'connect',\n timeout: timeout ?? undefined,\n // @ts-expect-error the type supplied by socks for socket_options is wider\n // than necessary since socks will always override the host and port\n socket_options: this.socketOptions ?? undefined,\n };\n const cleanup = (tlsSocket) => {\n req.destroy();\n socket.destroy();\n if (tlsSocket)\n tlsSocket.destroy();\n };\n debug('Creating socks proxy connection: %o', socksOpts);\n const { socket } = await socks_1.SocksClient.createConnection(socksOpts);\n debug('Successfully created socks proxy connection');\n if (timeout !== null) {\n socket.setTimeout(timeout);\n socket.on('timeout', () => cleanup());\n }\n if (opts.secureEndpoint) {\n // The proxy is connecting to a TLS server, so upgrade\n // this socket connection to a TLS connection.\n debug('Upgrading socket connection to TLS');\n const tlsSocket = tls.connect({\n ...omit(setServernameFromNonIpHost(opts), 'host', 'path', 'port'),\n socket,\n });\n tlsSocket.once('error', (error) => {\n debug('Socket TLS error', error.message);\n cleanup(tlsSocket);\n });\n return tlsSocket;\n }\n return socket;\n }\n}\nSocksProxyAgent.protocols = [\n 'socks',\n 'socks4',\n 'socks4a',\n 'socks5',\n 'socks5h',\n];\nexports.SocksProxyAgent = SocksProxyAgent;\nfunction omit(obj, ...keys) {\n const ret = {};\n let key;\n for (key in obj) {\n if (!keys.includes(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n}\n//# sourceMappingURL=index.js.map","'use strict'\n\nconst https = require('https')\nconst http = require('http')\nconst { URL } = require('url')\n\nclass HttpProxyAgent extends http.Agent {\n constructor (options) {\n const { proxy, proxyRequestOptions, ...opts } = options\n super(opts)\n this.proxy = typeof proxy === 'string'\n ? new URL(proxy)\n : proxy\n this.proxyRequestOptions = proxyRequestOptions || {}\n }\n\n createConnection (options, callback) {\n const requestOptions = {\n ...this.proxyRequestOptions,\n method: 'CONNECT',\n host: this.proxy.hostname,\n port: this.proxy.port,\n path: `${options.host}:${options.port}`,\n setHost: false,\n headers: { ...this.proxyRequestOptions.headers, connection: this.keepAlive ? 'keep-alive' : 'close', host: `${options.host}:${options.port}` },\n agent: false,\n timeout: options.timeout || 0\n }\n\n if (this.proxy.username || this.proxy.password) {\n const base64 = Buffer.from(`${decodeURIComponent(this.proxy.username || '')}:${decodeURIComponent(this.proxy.password || '')}`).toString('base64')\n requestOptions.headers['proxy-authorization'] = `Basic ${base64}`\n }\n\n if (this.proxy.protocol === 'https:') {\n requestOptions.servername = this.proxy.hostname\n }\n\n const request = (this.proxy.protocol === 'http:' ? http : https).request(requestOptions)\n request.once('connect', (response, socket, head) => {\n request.removeAllListeners()\n socket.removeAllListeners()\n if (response.statusCode === 200) {\n callback(null, socket)\n } else {\n socket.destroy()\n callback(new Error(`Bad response: ${response.statusCode}`), null)\n }\n })\n\n request.once('timeout', () => {\n request.destroy(new Error('Proxy timeout'))\n })\n\n request.once('error', err => {\n request.removeAllListeners()\n callback(err, null)\n })\n\n request.end()\n }\n}\n\nclass HttpsProxyAgent extends https.Agent {\n constructor (options) {\n const { proxy, proxyRequestOptions, ...opts } = options\n super(opts)\n this.proxy = typeof proxy === 'string'\n ? new URL(proxy)\n : proxy\n this.proxyRequestOptions = proxyRequestOptions || {}\n }\n\n createConnection (options, callback) {\n const requestOptions = {\n ...this.proxyRequestOptions,\n method: 'CONNECT',\n host: this.proxy.hostname,\n port: this.proxy.port,\n path: `${options.host}:${options.port}`,\n setHost: false,\n headers: { ...this.proxyRequestOptions.headers, connection: this.keepAlive ? 'keep-alive' : 'close', host: `${options.host}:${options.port}` },\n agent: false,\n timeout: options.timeout || 0\n }\n\n if (this.proxy.username || this.proxy.password) {\n const base64 = Buffer.from(`${decodeURIComponent(this.proxy.username || '')}:${decodeURIComponent(this.proxy.password || '')}`).toString('base64')\n requestOptions.headers['proxy-authorization'] = `Basic ${base64}`\n }\n\n // Necessary for the TLS check with the proxy to succeed.\n if (this.proxy.protocol === 'https:') {\n requestOptions.servername = this.proxy.hostname\n }\n\n const request = (this.proxy.protocol === 'http:' ? http : https).request(requestOptions)\n request.once('connect', (response, socket, head) => {\n request.removeAllListeners()\n socket.removeAllListeners()\n if (response.statusCode === 200) {\n const secureSocket = super.createConnection({ ...options, socket })\n callback(null, secureSocket)\n } else {\n socket.destroy()\n callback(new Error(`Bad response: ${response.statusCode}`), null)\n }\n })\n\n request.once('timeout', () => {\n request.destroy(new Error('Proxy timeout'))\n })\n\n request.once('error', err => {\n request.removeAllListeners()\n callback(err, null)\n })\n\n request.end()\n }\n}\n\nmodule.exports = {\n HttpProxyAgent,\n HttpsProxyAgent\n}\n","import mod from './index.js'\n\nexport default mod\nexport const HttpProxyAgent = mod.HttpProxyAgent\nexport const HttpsProxyAgent = mod.HttpsProxyAgent\n","import fs from 'node:fs';\nimport https from 'node:https';\nimport http from 'node:http';\nimport yaml from 'js-yaml';\nimport net from 'node:net';\nimport path from 'node:path';\nimport { Headers } from 'node-fetch';\nimport { AzureAuth } from './azure_auth.js';\nimport { exportCluster, exportContext, exportUser, newClusters, newContexts, newUsers, } from './config_types.js';\nimport { ExecAuth } from './exec_auth.js';\nimport { FileAuth } from './file_auth.js';\nimport { GoogleCloudPlatformAuth } from './gcp_auth.js';\nimport { createConfiguration, ServerConfiguration, } from './gen/index.js';\nimport { OpenIDConnectAuth } from './oidc_auth.js';\nimport child_process from 'node:child_process';\nimport { SocksProxyAgent } from 'socks-proxy-agent';\nimport { HttpProxyAgent, HttpsProxyAgent } from 'hpagent';\nconst SERVICEACCOUNT_ROOT = '/var/run/secrets/kubernetes.io/serviceaccount';\nconst SERVICEACCOUNT_CA_PATH = SERVICEACCOUNT_ROOT + '/ca.crt';\nconst SERVICEACCOUNT_TOKEN_PATH = SERVICEACCOUNT_ROOT + '/token';\nconst SERVICEACCOUNT_NAMESPACE_PATH = SERVICEACCOUNT_ROOT + '/namespace';\n// fs.existsSync was removed in node 10\nfunction fileExists(filepath) {\n try {\n fs.accessSync(filepath);\n return true;\n }\n catch {\n // Ignore errors.\n return false;\n }\n}\nexport class KubeConfig {\n // Optionally add additional external authenticators, you must do this\n // before you load a kubeconfig file that references them.\n addAuthenticator(authenticator) {\n this.custom_authenticators.push(authenticator);\n }\n constructor() {\n // List of custom authenticators that can be added by the user\n this.custom_authenticators = [];\n this.contexts = [];\n this.clusters = [];\n this.users = [];\n }\n getContexts() {\n return this.contexts;\n }\n getClusters() {\n return this.clusters;\n }\n getUsers() {\n return this.users;\n }\n getCurrentContext() {\n return this.currentContext;\n }\n setCurrentContext(context) {\n this.currentContext = context;\n }\n getContextObject(name) {\n if (!this.contexts) {\n return null;\n }\n return findObject(this.contexts, name, 'context');\n }\n getCurrentCluster() {\n const context = this.getCurrentContextObject();\n if (!context) {\n return null;\n }\n return this.getCluster(context.cluster);\n }\n getCluster(name) {\n return findObject(this.clusters, name, 'cluster');\n }\n getCurrentUser() {\n const ctx = this.getCurrentContextObject();\n if (!ctx) {\n return null;\n }\n return this.getUser(ctx.user);\n }\n getUser(name) {\n return findObject(this.users, name, 'user');\n }\n loadFromFile(file, opts) {\n const rootDirectory = path.dirname(file);\n this.loadFromString(fs.readFileSync(file).toString('utf-8'), opts);\n this.makePathsAbsolute(rootDirectory);\n }\n async applyToFetchOptions(opts) {\n await this.applyToHTTPSOptions(opts);\n const headers = new Headers();\n for (const [key, val] of Object.entries(opts.headers || {})) {\n if (Array.isArray(val)) {\n val.forEach((innerVal) => {\n headers.append(key, innerVal);\n });\n }\n else if (typeof val === 'number' || typeof val === 'string') {\n headers.set(key, val.toString());\n }\n }\n if (opts.auth) {\n headers.set('Authorization', 'Basic ' + Buffer.from(opts.auth).toString('base64'));\n }\n return {\n agent: opts.agent,\n headers,\n method: opts.method,\n timeout: opts.timeout,\n };\n }\n async applyToHTTPSOptions(opts) {\n const user = this.getCurrentUser();\n const cluster = this.getCurrentCluster();\n await this.applyOptions(opts);\n if (user && user.username) {\n // The ws docs say that it accepts anything that https.RequestOptions accepts,\n // but Typescript doesn't understand that idea (yet) probably could be fixed in\n // the typings, but for now just cast to any\n opts.auth = `${user.username}:${user.password}`;\n }\n const agentOptions = {};\n // Copy AgentOptions from RequestOptions\n agentOptions.ca = opts.ca;\n agentOptions.cert = opts.cert;\n agentOptions.key = opts.key;\n agentOptions.pfx = opts.pfx;\n agentOptions.passphrase = opts.passphrase;\n agentOptions.rejectUnauthorized = opts.rejectUnauthorized;\n // The ws docs say that it accepts anything that https.RequestOptions accepts,\n // but Typescript doesn't understand that idea (yet) probably could be fixed in\n // the typings, but for now just cast to any\n agentOptions.timeout = opts.timeout;\n agentOptions.servername = opts.servername;\n agentOptions.ciphers = opts.ciphers;\n agentOptions.honorCipherOrder = opts.honorCipherOrder;\n agentOptions.ecdhCurve = opts.ecdhCurve;\n agentOptions.clientCertEngine = opts.clientCertEngine;\n agentOptions.crl = opts.crl;\n agentOptions.dhparam = opts.dhparam;\n agentOptions.secureOptions = opts.secureOptions;\n agentOptions.secureProtocol = opts.secureProtocol;\n agentOptions.sessionIdContext = opts.sessionIdContext;\n opts.agent = this.createAgent(cluster, agentOptions);\n }\n /**\n * Applies SecurityAuthentication to RequestContext of an API Call from API Client\n * @param context\n */\n async applySecurityAuthentication(context) {\n const cluster = this.getCurrentCluster();\n const user = this.getCurrentUser();\n const agentOptions = {};\n const httpsOptions = {};\n await this.applyOptions(httpsOptions);\n if (cluster && cluster.skipTLSVerify) {\n agentOptions.rejectUnauthorized = false;\n }\n if (cluster && cluster.tlsServerName) {\n agentOptions.servername = cluster.tlsServerName;\n }\n if (user && user.username) {\n const auth = Buffer.from(`${user.username}:${user.password}`).toString('base64');\n context.setHeaderParam('Authorization', `Basic ${auth}`);\n }\n // Copy headers from httpsOptions to RequestContext\n const headers = httpsOptions.headers || {};\n Object.entries(headers).forEach(([key, value]) => {\n context.setHeaderParam(key, `${value}`);\n });\n // Copy AgentOptions from RequestOptions\n agentOptions.ca = httpsOptions.ca;\n agentOptions.cert = httpsOptions.cert;\n agentOptions.key = httpsOptions.key;\n agentOptions.pfx = httpsOptions.pfx;\n agentOptions.passphrase = httpsOptions.passphrase;\n agentOptions.rejectUnauthorized = httpsOptions.rejectUnauthorized;\n context.setAgent(this.createAgent(cluster, agentOptions));\n }\n /**\n * Returns name of this security authentication method\n * @returns string\n */\n getName() {\n return 'kubeconfig authentication';\n }\n loadFromString(config, opts) {\n const obj = yaml.load(config);\n this.clusters = newClusters(obj.clusters, opts);\n this.contexts = newContexts(obj.contexts, opts);\n this.users = newUsers(obj.users, opts);\n this.currentContext = obj['current-context'];\n }\n loadFromOptions(options) {\n this.clusters = options.clusters;\n this.contexts = options.contexts;\n this.users = options.users;\n this.currentContext = options.currentContext;\n }\n loadFromClusterAndUser(cluster, user) {\n this.clusters = [cluster];\n this.users = [user];\n this.currentContext = 'loaded-context';\n this.contexts = [\n {\n cluster: cluster.name,\n user: user.name,\n name: this.currentContext,\n },\n ];\n }\n loadFromCluster(pathPrefix = '') {\n const host = process.env.KUBERNETES_SERVICE_HOST;\n const port = process.env.KUBERNETES_SERVICE_PORT;\n const clusterName = 'inCluster';\n const userName = 'inClusterUser';\n const contextName = 'inClusterContext';\n let scheme = 'https';\n if (port === '80' || port === '8080' || port === '8001') {\n scheme = 'http';\n }\n // Wrap raw IPv6 addresses in brackets.\n let serverHost = host;\n if (host && net.isIPv6(host)) {\n serverHost = `[${host}]`;\n }\n this.clusters = [\n {\n name: clusterName,\n caFile: `${pathPrefix}${SERVICEACCOUNT_CA_PATH}`,\n server: `${scheme}://${serverHost}:${port}`,\n skipTLSVerify: false,\n },\n ];\n this.users = [\n {\n name: userName,\n authProvider: {\n name: 'tokenFile',\n config: {\n tokenFile: `${pathPrefix}${SERVICEACCOUNT_TOKEN_PATH}`,\n },\n },\n },\n ];\n const namespaceFile = `${pathPrefix}${SERVICEACCOUNT_NAMESPACE_PATH}`;\n let namespace;\n if (fileExists(namespaceFile)) {\n namespace = fs.readFileSync(namespaceFile).toString('utf-8');\n }\n this.contexts = [\n {\n cluster: clusterName,\n name: contextName,\n user: userName,\n namespace,\n },\n ];\n this.currentContext = contextName;\n }\n mergeConfig(config, preserveContext = false) {\n if (!preserveContext && config.currentContext) {\n this.currentContext = config.currentContext;\n }\n config.clusters.forEach((cluster) => {\n this.addCluster(cluster);\n });\n config.users.forEach((user) => {\n this.addUser(user);\n });\n config.contexts.forEach((ctx) => {\n this.addContext(ctx);\n });\n }\n addCluster(cluster) {\n if (!this.clusters) {\n this.clusters = [];\n }\n this.clusters.forEach((c, ix) => {\n if (c.name === cluster.name) {\n throw new Error(`Duplicate cluster: ${c.name}`);\n }\n });\n this.clusters.push(cluster);\n }\n addUser(user) {\n if (!this.users) {\n this.users = [];\n }\n this.users.forEach((c, ix) => {\n if (c.name === user.name) {\n throw new Error(`Duplicate user: ${c.name}`);\n }\n });\n this.users.push(user);\n }\n addContext(ctx) {\n if (!this.contexts) {\n this.contexts = [];\n }\n this.contexts.forEach((c, ix) => {\n if (c.name === ctx.name) {\n throw new Error(`Duplicate context: ${c.name}`);\n }\n });\n this.contexts.push(ctx);\n }\n loadFromDefault(opts, contextFromStartingConfig = false, platform = process.platform) {\n if (process.env.KUBECONFIG && process.env.KUBECONFIG.length > 0) {\n const files = process.env.KUBECONFIG.split(path.delimiter).filter((filename) => filename);\n this.loadFromFile(files[0], opts);\n for (let i = 1; i < files.length; i++) {\n const kc = new KubeConfig();\n kc.loadFromFile(files[i], opts);\n this.mergeConfig(kc, contextFromStartingConfig);\n }\n return;\n }\n const home = findHomeDir(platform);\n if (home) {\n const config = path.join(home, '.kube', 'config');\n if (fileExists(config)) {\n this.loadFromFile(config, opts);\n return;\n }\n }\n if (platform === 'win32') {\n try {\n const envKubeconfigPathResult = child_process.spawnSync('wsl.exe', [\n 'bash',\n '-c',\n 'printenv KUBECONFIG',\n ]);\n if (envKubeconfigPathResult.status === 0 && envKubeconfigPathResult.stdout.length > 0) {\n const result = child_process.spawnSync('wsl.exe', [\n 'cat',\n envKubeconfigPathResult.stdout.toString('utf8'),\n ]);\n if (result.status === 0) {\n this.loadFromString(result.stdout.toString('utf8'), opts);\n return;\n }\n }\n }\n catch {\n // Falling back to default kubeconfig\n }\n try {\n const configResult = child_process.spawnSync('wsl.exe', ['cat', '~/.kube/config']);\n if (configResult.status === 0) {\n this.loadFromString(configResult.stdout.toString('utf8'), opts);\n const result = child_process.spawnSync('wsl.exe', ['wslpath', '-w', '~/.kube']);\n if (result.status === 0) {\n this.makePathsAbsolute(result.stdout.toString('utf8'));\n }\n return;\n }\n }\n catch {\n // Falling back to alternative auth\n }\n }\n if (fileExists(SERVICEACCOUNT_TOKEN_PATH)) {\n this.loadFromCluster();\n return;\n }\n this.loadFromClusterAndUser({ name: 'cluster', server: 'http://localhost:8080' }, { name: 'user' });\n }\n makeApiClient(apiClientType) {\n const cluster = this.getCurrentCluster();\n if (!cluster) {\n throw new Error('No active cluster!');\n }\n const authConfig = {\n default: this,\n };\n const baseServerConfig = new ServerConfiguration(cluster.server, {});\n const config = createConfiguration({\n baseServer: baseServerConfig,\n authMethods: authConfig,\n });\n const apiClient = new apiClientType(config);\n return apiClient;\n }\n makePathsAbsolute(rootDirectory) {\n this.clusters.forEach((cluster) => {\n if (cluster.caFile) {\n cluster.caFile = makeAbsolutePath(rootDirectory, cluster.caFile);\n }\n });\n this.users.forEach((user) => {\n if (user.certFile) {\n user.certFile = makeAbsolutePath(rootDirectory, user.certFile);\n }\n if (user.keyFile) {\n user.keyFile = makeAbsolutePath(rootDirectory, user.keyFile);\n }\n });\n }\n exportConfig() {\n const configObj = {\n apiVersion: 'v1',\n kind: 'Config',\n clusters: this.clusters.map(exportCluster),\n users: this.users.map(exportUser),\n contexts: this.contexts.map(exportContext),\n preferences: {},\n 'current-context': this.getCurrentContext(),\n };\n return JSON.stringify(configObj);\n }\n getCurrentContextObject() {\n return this.getContextObject(this.currentContext);\n }\n createAgent(cluster, agentOptions) {\n var _a, _b;\n let agent;\n if (cluster && cluster.proxyUrl) {\n if (cluster.proxyUrl.startsWith('socks')) {\n agent = new SocksProxyAgent(cluster.proxyUrl, agentOptions);\n }\n else if (cluster.server.startsWith('https')) {\n const httpsProxyAgentOptions = agentOptions;\n httpsProxyAgentOptions.proxy = cluster.proxyUrl;\n agent = new HttpsProxyAgent(httpsProxyAgentOptions);\n }\n else if (cluster.server.startsWith('http')) {\n const httpProxyAgentOptions = agentOptions;\n httpProxyAgentOptions.proxy = cluster.proxyUrl;\n agent = new HttpProxyAgent(httpProxyAgentOptions);\n }\n else {\n throw new Error('Unsupported proxy type');\n }\n }\n else if (((_a = cluster === null || cluster === void 0 ? void 0 : cluster.server) === null || _a === void 0 ? void 0 : _a.startsWith('http:')) && cluster.skipTLSVerify) {\n agent = new http.Agent(agentOptions);\n }\n else if (((_b = cluster === null || cluster === void 0 ? void 0 : cluster.server) === null || _b === void 0 ? void 0 : _b.startsWith('http:')) && !cluster.skipTLSVerify) {\n throw new Error('HTTP protocol is not allowed when skipTLSVerify is not set or false');\n }\n else {\n agent = new https.Agent(agentOptions);\n }\n return agent;\n }\n applyHTTPSOptions(opts) {\n var _a;\n const cluster = this.getCurrentCluster();\n const user = this.getCurrentUser();\n if (!user) {\n return;\n }\n if (cluster != null && cluster.skipTLSVerify) {\n opts.rejectUnauthorized = false;\n }\n if (cluster != null && cluster.tlsServerName) {\n // WebSocket.ClientOptions types are missing the servername\n opts.servername = cluster.tlsServerName;\n }\n const ca = cluster != null ? bufferFromFileOrString(cluster.caFile, cluster.caData) : null;\n if (ca) {\n opts.ca = ca;\n }\n const cert = bufferFromFileOrString(user.certFile, user.certData);\n if (cert) {\n opts.cert = cert;\n }\n const key = bufferFromFileOrString(user.keyFile, user.keyData);\n if (key) {\n opts.key = key;\n }\n if (user.impersonateUser != null) {\n (_a = opts.headers) !== null && _a !== void 0 ? _a : (opts.headers = {});\n opts.headers['Impersonate-User'] = user.impersonateUser;\n }\n }\n async applyAuthorizationHeader(opts) {\n const user = this.getCurrentUser();\n if (!user) {\n return;\n }\n let authenticator = KubeConfig.authenticators.find((elt) => {\n return elt.isAuthProvider(user);\n });\n if (!authenticator) {\n authenticator = this.custom_authenticators.find((elt) => {\n return elt.isAuthProvider(user);\n });\n }\n if (!opts.headers) {\n opts.headers = {};\n }\n if (authenticator) {\n await authenticator.applyAuthentication(user, opts);\n }\n if (user.token) {\n opts.headers.Authorization = `Bearer ${user.token}`;\n }\n }\n async applyOptions(opts) {\n this.applyHTTPSOptions(opts);\n await this.applyAuthorizationHeader(opts);\n }\n}\nKubeConfig.authenticators = [\n new AzureAuth(),\n new GoogleCloudPlatformAuth(),\n new ExecAuth(),\n new FileAuth(),\n new OpenIDConnectAuth(),\n];\nexport function makeAbsolutePath(root, file) {\n if (!root || path.isAbsolute(file)) {\n return file;\n }\n return path.join(root, file);\n}\n// This is public really only for testing.\nexport function bufferFromFileOrString(file, data) {\n if (file) {\n return fs.readFileSync(file);\n }\n if (data) {\n return Buffer.from(data, 'base64');\n }\n return null;\n}\nfunction dropDuplicatesAndNils(a) {\n return a.reduce((acceptedValues, currentValue) => {\n // Good-enough algorithm for reducing a small (3 items at this point) array into an ordered list\n // of unique non-empty strings.\n if (currentValue && !acceptedValues.includes(currentValue)) {\n return acceptedValues.concat(currentValue);\n }\n else {\n return acceptedValues;\n }\n }, []);\n}\n// Only public for testing.\nexport function findHomeDir(platform = process.platform) {\n if (platform !== 'win32') {\n if (process.env.HOME) {\n try {\n fs.accessSync(process.env.HOME);\n return process.env.HOME;\n }\n catch {\n // Ignore errors.\n }\n }\n return null;\n }\n // $HOME is always favoured, but the k8s go-client prefers the other two env vars\n // differently depending on whether .kube/config exists or not.\n const homeDrivePath = process.env.HOMEDRIVE && process.env.HOMEPATH\n ? path.join(process.env.HOMEDRIVE, process.env.HOMEPATH)\n : '';\n const homePath = process.env.HOME || '';\n const userProfile = process.env.USERPROFILE || '';\n const favourHomeDrivePathList = dropDuplicatesAndNils([homePath, homeDrivePath, userProfile]);\n const favourUserProfileList = dropDuplicatesAndNils([homePath, userProfile, homeDrivePath]);\n // 1. the first of %HOME%, %HOMEDRIVE%%HOMEPATH%, %USERPROFILE% containing a `.kube\\config` file is returned.\n for (const dir of favourHomeDrivePathList) {\n try {\n fs.accessSync(path.join(dir, '.kube', 'config'));\n return dir;\n }\n catch {\n // Ignore errors.\n }\n }\n // 2. ...the first of %HOME%, %USERPROFILE%, %HOMEDRIVE%%HOMEPATH% that exists and is writeable is returned\n for (const dir of favourUserProfileList) {\n try {\n fs.accessSync(dir, fs.constants.W_OK);\n return dir;\n }\n catch {\n // Ignore errors.\n }\n }\n // 3. ...the first of %HOME%, %USERPROFILE%, %HOMEDRIVE%%HOMEPATH% that exists is returned.\n for (const dir of favourUserProfileList) {\n try {\n fs.accessSync(dir);\n return dir;\n }\n catch {\n // Ignore errors.\n }\n }\n // 4. if none of those locations exists, the first of\n // %HOME%, %USERPROFILE%, %HOMEDRIVE%%HOMEPATH% that is set is returned.\n return favourUserProfileList[0] || null;\n}\n// Only really public for testing...\nexport function findObject(list, name, key) {\n if (!list) {\n return null;\n }\n for (const obj of list) {\n if (obj.name === name) {\n if (obj[key]) {\n obj[key].name = name;\n return obj[key];\n }\n return obj;\n }\n }\n return null;\n}\n//# sourceMappingURL=config.js.map","import { ObjectSerializer as InternalSerializer } from './gen/models/ObjectSerializer.js';\nconst isKubernetesObject = (data) => !!data && typeof data === 'object' && 'apiVersion' in data && 'kind' in data;\nclass KubernetesObject {\n serialize() {\n const instance = {};\n for (const attributeType of KubernetesObject.attributeTypeMap) {\n const value = this[attributeType.baseName];\n if (value !== undefined) {\n instance[attributeType.name] = InternalSerializer.serialize(this[attributeType.baseName], attributeType.type, attributeType.format);\n }\n }\n // add all unknown properties as is.\n for (const [key, value] of Object.entries(this)) {\n if (KubernetesObject.attributeTypeMap.find((t) => t.name === key)) {\n continue;\n }\n instance[key] = value;\n }\n return instance;\n }\n static fromUnknown(data) {\n if (!isKubernetesObject(data)) {\n throw new Error(`Unable to deseriliaze non-Kubernetes object ${data}.`);\n }\n const instance = new KubernetesObject();\n for (const attributeType of KubernetesObject.attributeTypeMap) {\n const value = data[attributeType.baseName];\n if (value !== undefined) {\n instance[attributeType.name] = InternalSerializer.deserialize(data[attributeType.baseName], attributeType.type, attributeType.format);\n }\n }\n // add all unknown properties as is.\n for (const [key, value] of Object.entries(data)) {\n if (KubernetesObject.attributeTypeMap.find((t) => t.name === key)) {\n continue;\n }\n instance[key] = value;\n }\n return instance;\n }\n}\nKubernetesObject.attributeTypeMap = [\n {\n name: 'apiVersion',\n baseName: 'apiVersion',\n type: 'string',\n format: '',\n },\n {\n name: 'kind',\n baseName: 'kind',\n type: 'string',\n format: '',\n },\n {\n name: 'metadata',\n baseName: 'metadata',\n type: 'V1ObjectMeta',\n format: '',\n },\n];\nconst gvString = ({ group, version }) => [group, version].join('/');\nconst gvkFromObject = (obj) => {\n const [g, v] = obj.apiVersion.split('/');\n return {\n kind: obj.kind,\n group: v ? g : '',\n version: v ? v : g,\n };\n};\n/**\n * Default serializer that uses the KubernetesObject to serialize and deserialize\n * any object using only the minimum required attributes.\n */\nexport const defaultSerializer = {\n serialize: (data, type, format) => {\n if (data instanceof KubernetesObject) {\n return data.serialize();\n }\n return KubernetesObject.fromUnknown(data).serialize();\n },\n deserialize: (data, type, format) => {\n return KubernetesObject.fromUnknown(data);\n },\n};\n/**\n * Wraps the ObjectSerializer to support custom resources and generic Kubernetes objects.\n *\n * CustomResources that are unknown to the ObjectSerializer can be registered\n * by using ObjectSerializer.registerModel().\n */\nexport class ObjectSerializer extends InternalSerializer {\n /**\n * Adds a dedicated seriliazer for a Kubernetes resource.\n * Every resource is uniquly identified using its group, version and kind.\n * @param gvk\n * @param serializer\n */\n static registerModel(gvk, serializer) {\n var _a;\n var _b;\n const gv = gvString(gvk);\n const kinds = ((_a = (_b = this.modelRegistry)[gv]) !== null && _a !== void 0 ? _a : (_b[gv] = {}));\n if (kinds[gvk.kind]) {\n throw new Error(`Kind ${gvk.kind} of ${gv} is already defined`);\n }\n kinds[gvk.kind] = serializer;\n }\n /**\n * Removes all registered models from the registry.\n */\n static clearModelRegistry() {\n this.modelRegistry = {};\n }\n static getSerializerForObject(obj) {\n var _a;\n if (!isKubernetesObject(obj)) {\n return undefined;\n }\n const gvk = gvkFromObject(obj);\n return (_a = ObjectSerializer.modelRegistry[gvString(gvk)]) === null || _a === void 0 ? void 0 : _a[gvk.kind];\n }\n static serialize(data, type, format = '') {\n const serializer = ObjectSerializer.getSerializerForObject(data);\n if (serializer) {\n return serializer.serialize(data, type, format);\n }\n if (data instanceof KubernetesObject) {\n return data.serialize();\n }\n const obj = InternalSerializer.serialize(data, type, format);\n if (obj !== data) {\n return obj;\n }\n if (!isKubernetesObject(data)) {\n return obj;\n }\n const instance = {};\n for (const attributeType of KubernetesObject.attributeTypeMap) {\n const value = data[attributeType.baseName];\n if (value !== undefined) {\n instance[attributeType.name] = InternalSerializer.serialize(data[attributeType.baseName], attributeType.type, attributeType.format);\n }\n }\n // add all unknown properties as is.\n for (const [key, value] of Object.entries(data)) {\n if (KubernetesObject.attributeTypeMap.find((t) => t.name === key)) {\n continue;\n }\n instance[key] = value;\n }\n return instance;\n }\n static deserialize(data, type, format = '') {\n const serializer = ObjectSerializer.getSerializerForObject(data);\n if (serializer) {\n return serializer.deserialize(data, type, format);\n }\n const obj = InternalSerializer.deserialize(data, type, format);\n if (obj !== data) {\n // the serializer knows the type and already deserialized it.\n return obj;\n }\n if (!isKubernetesObject(data)) {\n return obj;\n }\n return KubernetesObject.fromUnknown(data);\n }\n}\nObjectSerializer.modelRegistry = {};\n//# sourceMappingURL=serializer.js.map","'use strict';\n\nconst BINARY_TYPES = ['nodebuffer', 'arraybuffer', 'fragments'];\nconst hasBlob = typeof Blob !== 'undefined';\n\nif (hasBlob) BINARY_TYPES.push('blob');\n\nmodule.exports = {\n BINARY_TYPES,\n EMPTY_BUFFER: Buffer.alloc(0),\n GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11',\n hasBlob,\n kForOnEventAttribute: Symbol('kIsForOnEventAttribute'),\n kListener: Symbol('kListener'),\n kStatusCode: Symbol('status-code'),\n kWebSocket: Symbol('websocket'),\n NOOP: () => {}\n};\n","'use strict';\n\nconst { EMPTY_BUFFER } = require('./constants');\n\nconst FastBuffer = Buffer[Symbol.species];\n\n/**\n * Merges an array of buffers into a new buffer.\n *\n * @param {Buffer[]} list The array of buffers to concat\n * @param {Number} totalLength The total length of buffers in the list\n * @return {Buffer} The resulting buffer\n * @public\n */\nfunction concat(list, totalLength) {\n if (list.length === 0) return EMPTY_BUFFER;\n if (list.length === 1) return list[0];\n\n const target = Buffer.allocUnsafe(totalLength);\n let offset = 0;\n\n for (let i = 0; i < list.length; i++) {\n const buf = list[i];\n target.set(buf, offset);\n offset += buf.length;\n }\n\n if (offset < totalLength) {\n return new FastBuffer(target.buffer, target.byteOffset, offset);\n }\n\n return target;\n}\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nfunction _mask(source, mask, output, offset, length) {\n for (let i = 0; i < length; i++) {\n output[offset + i] = source[i] ^ mask[i & 3];\n }\n}\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nfunction _unmask(buffer, mask) {\n for (let i = 0; i < buffer.length; i++) {\n buffer[i] ^= mask[i & 3];\n }\n}\n\n/**\n * Converts a buffer to an `ArrayBuffer`.\n *\n * @param {Buffer} buf The buffer to convert\n * @return {ArrayBuffer} Converted buffer\n * @public\n */\nfunction toArrayBuffer(buf) {\n if (buf.length === buf.buffer.byteLength) {\n return buf.buffer;\n }\n\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.length);\n}\n\n/**\n * Converts `data` to a `Buffer`.\n *\n * @param {*} data The data to convert\n * @return {Buffer} The buffer\n * @throws {TypeError}\n * @public\n */\nfunction toBuffer(data) {\n toBuffer.readOnly = true;\n\n if (Buffer.isBuffer(data)) return data;\n\n let buf;\n\n if (data instanceof ArrayBuffer) {\n buf = new FastBuffer(data);\n } else if (ArrayBuffer.isView(data)) {\n buf = new FastBuffer(data.buffer, data.byteOffset, data.byteLength);\n } else {\n buf = Buffer.from(data);\n toBuffer.readOnly = false;\n }\n\n return buf;\n}\n\nmodule.exports = {\n concat,\n mask: _mask,\n toArrayBuffer,\n toBuffer,\n unmask: _unmask\n};\n\n/* istanbul ignore else */\nif (!process.env.WS_NO_BUFFER_UTIL) {\n try {\n const bufferUtil = require('bufferutil');\n\n module.exports.mask = function (source, mask, output, offset, length) {\n if (length < 48) _mask(source, mask, output, offset, length);\n else bufferUtil.mask(source, mask, output, offset, length);\n };\n\n module.exports.unmask = function (buffer, mask) {\n if (buffer.length < 32) _unmask(buffer, mask);\n else bufferUtil.unmask(buffer, mask);\n };\n } catch (e) {\n // Continue regardless of the error.\n }\n}\n","'use strict';\n\nconst kDone = Symbol('kDone');\nconst kRun = Symbol('kRun');\n\n/**\n * A very simple job queue with adjustable concurrency. Adapted from\n * https://github.com/STRML/async-limiter\n */\nclass Limiter {\n /**\n * Creates a new `Limiter`.\n *\n * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed\n * to run concurrently\n */\n constructor(concurrency) {\n this[kDone] = () => {\n this.pending--;\n this[kRun]();\n };\n this.concurrency = concurrency || Infinity;\n this.jobs = [];\n this.pending = 0;\n }\n\n /**\n * Adds a job to the queue.\n *\n * @param {Function} job The job to run\n * @public\n */\n add(job) {\n this.jobs.push(job);\n this[kRun]();\n }\n\n /**\n * Removes a job from the queue and runs it if possible.\n *\n * @private\n */\n [kRun]() {\n if (this.pending === this.concurrency) return;\n\n if (this.jobs.length) {\n const job = this.jobs.shift();\n\n this.pending++;\n job(this[kDone]);\n }\n }\n}\n\nmodule.exports = Limiter;\n","'use strict';\n\nconst zlib = require('zlib');\n\nconst bufferUtil = require('./buffer-util');\nconst Limiter = require('./limiter');\nconst { kStatusCode } = require('./constants');\n\nconst FastBuffer = Buffer[Symbol.species];\nconst TRAILER = Buffer.from([0x00, 0x00, 0xff, 0xff]);\nconst kPerMessageDeflate = Symbol('permessage-deflate');\nconst kTotalLength = Symbol('total-length');\nconst kCallback = Symbol('callback');\nconst kBuffers = Symbol('buffers');\nconst kError = Symbol('error');\n\n//\n// We limit zlib concurrency, which prevents severe memory fragmentation\n// as documented in https://github.com/nodejs/node/issues/8871#issuecomment-250915913\n// and https://github.com/websockets/ws/issues/1202\n//\n// Intentionally global; it's the global thread pool that's an issue.\n//\nlet zlibLimiter;\n\n/**\n * permessage-deflate implementation.\n */\nclass PerMessageDeflate {\n /**\n * Creates a PerMessageDeflate instance.\n *\n * @param {Object} [options] Configuration options\n * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support\n * for, or request, a custom client window size\n * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/\n * acknowledge disabling of client context takeover\n * @param {Number} [options.concurrencyLimit=10] The number of concurrent\n * calls to zlib\n * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the\n * use of a custom server window size\n * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept\n * disabling of server context takeover\n * @param {Number} [options.threshold=1024] Size (in bytes) below which\n * messages should not be compressed if context takeover is disabled\n * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on\n * deflate\n * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on\n * inflate\n * @param {Boolean} [isServer=false] Create the instance in either server or\n * client mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(options, isServer, maxPayload) {\n this._maxPayload = maxPayload | 0;\n this._options = options || {};\n this._threshold =\n this._options.threshold !== undefined ? this._options.threshold : 1024;\n this._isServer = !!isServer;\n this._deflate = null;\n this._inflate = null;\n\n this.params = null;\n\n if (!zlibLimiter) {\n const concurrency =\n this._options.concurrencyLimit !== undefined\n ? this._options.concurrencyLimit\n : 10;\n zlibLimiter = new Limiter(concurrency);\n }\n }\n\n /**\n * @type {String}\n */\n static get extensionName() {\n return 'permessage-deflate';\n }\n\n /**\n * Create an extension negotiation offer.\n *\n * @return {Object} Extension parameters\n * @public\n */\n offer() {\n const params = {};\n\n if (this._options.serverNoContextTakeover) {\n params.server_no_context_takeover = true;\n }\n if (this._options.clientNoContextTakeover) {\n params.client_no_context_takeover = true;\n }\n if (this._options.serverMaxWindowBits) {\n params.server_max_window_bits = this._options.serverMaxWindowBits;\n }\n if (this._options.clientMaxWindowBits) {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n } else if (this._options.clientMaxWindowBits == null) {\n params.client_max_window_bits = true;\n }\n\n return params;\n }\n\n /**\n * Accept an extension negotiation offer/response.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Object} Accepted configuration\n * @public\n */\n accept(configurations) {\n configurations = this.normalizeParams(configurations);\n\n this.params = this._isServer\n ? this.acceptAsServer(configurations)\n : this.acceptAsClient(configurations);\n\n return this.params;\n }\n\n /**\n * Releases all resources used by the extension.\n *\n * @public\n */\n cleanup() {\n if (this._inflate) {\n this._inflate.close();\n this._inflate = null;\n }\n\n if (this._deflate) {\n const callback = this._deflate[kCallback];\n\n this._deflate.close();\n this._deflate = null;\n\n if (callback) {\n callback(\n new Error(\n 'The deflate stream was closed while data was being processed'\n )\n );\n }\n }\n }\n\n /**\n * Accept an extension negotiation offer.\n *\n * @param {Array} offers The extension negotiation offers\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsServer(offers) {\n const opts = this._options;\n const accepted = offers.find((params) => {\n if (\n (opts.serverNoContextTakeover === false &&\n params.server_no_context_takeover) ||\n (params.server_max_window_bits &&\n (opts.serverMaxWindowBits === false ||\n (typeof opts.serverMaxWindowBits === 'number' &&\n opts.serverMaxWindowBits > params.server_max_window_bits))) ||\n (typeof opts.clientMaxWindowBits === 'number' &&\n !params.client_max_window_bits)\n ) {\n return false;\n }\n\n return true;\n });\n\n if (!accepted) {\n throw new Error('None of the extension offers can be accepted');\n }\n\n if (opts.serverNoContextTakeover) {\n accepted.server_no_context_takeover = true;\n }\n if (opts.clientNoContextTakeover) {\n accepted.client_no_context_takeover = true;\n }\n if (typeof opts.serverMaxWindowBits === 'number') {\n accepted.server_max_window_bits = opts.serverMaxWindowBits;\n }\n if (typeof opts.clientMaxWindowBits === 'number') {\n accepted.client_max_window_bits = opts.clientMaxWindowBits;\n } else if (\n accepted.client_max_window_bits === true ||\n opts.clientMaxWindowBits === false\n ) {\n delete accepted.client_max_window_bits;\n }\n\n return accepted;\n }\n\n /**\n * Accept the extension negotiation response.\n *\n * @param {Array} response The extension negotiation response\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsClient(response) {\n const params = response[0];\n\n if (\n this._options.clientNoContextTakeover === false &&\n params.client_no_context_takeover\n ) {\n throw new Error('Unexpected parameter \"client_no_context_takeover\"');\n }\n\n if (!params.client_max_window_bits) {\n if (typeof this._options.clientMaxWindowBits === 'number') {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n }\n } else if (\n this._options.clientMaxWindowBits === false ||\n (typeof this._options.clientMaxWindowBits === 'number' &&\n params.client_max_window_bits > this._options.clientMaxWindowBits)\n ) {\n throw new Error(\n 'Unexpected or invalid parameter \"client_max_window_bits\"'\n );\n }\n\n return params;\n }\n\n /**\n * Normalize parameters.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Array} The offers/response with normalized parameters\n * @private\n */\n normalizeParams(configurations) {\n configurations.forEach((params) => {\n Object.keys(params).forEach((key) => {\n let value = params[key];\n\n if (value.length > 1) {\n throw new Error(`Parameter \"${key}\" must have only a single value`);\n }\n\n value = value[0];\n\n if (key === 'client_max_window_bits') {\n if (value !== true) {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (!this._isServer) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else if (key === 'server_max_window_bits') {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (\n key === 'client_no_context_takeover' ||\n key === 'server_no_context_takeover'\n ) {\n if (value !== true) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else {\n throw new Error(`Unknown parameter \"${key}\"`);\n }\n\n params[key] = value;\n });\n });\n\n return configurations;\n }\n\n /**\n * Decompress data. Concurrency limited.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n decompress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._decompress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Compress data. Concurrency limited.\n *\n * @param {(Buffer|String)} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n compress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._compress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Decompress data.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _decompress(data, fin, callback) {\n const endpoint = this._isServer ? 'client' : 'server';\n\n if (!this._inflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._inflate = zlib.createInflateRaw({\n ...this._options.zlibInflateOptions,\n windowBits\n });\n this._inflate[kPerMessageDeflate] = this;\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n this._inflate.on('error', inflateOnError);\n this._inflate.on('data', inflateOnData);\n }\n\n this._inflate[kCallback] = callback;\n\n this._inflate.write(data);\n if (fin) this._inflate.write(TRAILER);\n\n this._inflate.flush(() => {\n const err = this._inflate[kError];\n\n if (err) {\n this._inflate.close();\n this._inflate = null;\n callback(err);\n return;\n }\n\n const data = bufferUtil.concat(\n this._inflate[kBuffers],\n this._inflate[kTotalLength]\n );\n\n if (this._inflate._readableState.endEmitted) {\n this._inflate.close();\n this._inflate = null;\n } else {\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._inflate.reset();\n }\n }\n\n callback(null, data);\n });\n }\n\n /**\n * Compress data.\n *\n * @param {(Buffer|String)} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _compress(data, fin, callback) {\n const endpoint = this._isServer ? 'server' : 'client';\n\n if (!this._deflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._deflate = zlib.createDeflateRaw({\n ...this._options.zlibDeflateOptions,\n windowBits\n });\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n this._deflate.on('data', deflateOnData);\n }\n\n this._deflate[kCallback] = callback;\n\n this._deflate.write(data);\n this._deflate.flush(zlib.Z_SYNC_FLUSH, () => {\n if (!this._deflate) {\n //\n // The deflate stream was closed while data was being processed.\n //\n return;\n }\n\n let data = bufferUtil.concat(\n this._deflate[kBuffers],\n this._deflate[kTotalLength]\n );\n\n if (fin) {\n data = new FastBuffer(data.buffer, data.byteOffset, data.length - 4);\n }\n\n //\n // Ensure that the callback will not be called again in\n // `PerMessageDeflate#cleanup()`.\n //\n this._deflate[kCallback] = null;\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._deflate.reset();\n }\n\n callback(null, data);\n });\n }\n}\n\nmodule.exports = PerMessageDeflate;\n\n/**\n * The listener of the `zlib.DeflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction deflateOnData(chunk) {\n this[kBuffers].push(chunk);\n this[kTotalLength] += chunk.length;\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction inflateOnData(chunk) {\n this[kTotalLength] += chunk.length;\n\n if (\n this[kPerMessageDeflate]._maxPayload < 1 ||\n this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload\n ) {\n this[kBuffers].push(chunk);\n return;\n }\n\n this[kError] = new RangeError('Max payload size exceeded');\n this[kError].code = 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH';\n this[kError][kStatusCode] = 1009;\n this.removeListener('data', inflateOnData);\n\n //\n // The choice to employ `zlib.reset()` over `zlib.close()` is dictated by the\n // fact that in Node.js versions prior to 13.10.0, the callback for\n // `zlib.flush()` is not called if `zlib.close()` is used. Utilizing\n // `zlib.reset()` ensures that either the callback is invoked or an error is\n // emitted.\n //\n this.reset();\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'error'` event.\n *\n * @param {Error} err The emitted error\n * @private\n */\nfunction inflateOnError(err) {\n //\n // There is no need to call `Zlib#close()` as the handle is automatically\n // closed when an error is emitted.\n //\n this[kPerMessageDeflate]._inflate = null;\n\n if (this[kError]) {\n this[kCallback](this[kError]);\n return;\n }\n\n err[kStatusCode] = 1007;\n this[kCallback](err);\n}\n","'use strict';\n\nconst { isUtf8 } = require('buffer');\n\nconst { hasBlob } = require('./constants');\n\n//\n// Allowed token characters:\n//\n// '!', '#', '$', '%', '&', ''', '*', '+', '-',\n// '.', 0-9, A-Z, '^', '_', '`', a-z, '|', '~'\n//\n// tokenChars[32] === 0 // ' '\n// tokenChars[33] === 1 // '!'\n// tokenChars[34] === 0 // '\"'\n// ...\n//\n// prettier-ignore\nconst tokenChars = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, // 32 - 47\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, // 80 - 95\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0 // 112 - 127\n];\n\n/**\n * Checks if a status code is allowed in a close frame.\n *\n * @param {Number} code The status code\n * @return {Boolean} `true` if the status code is valid, else `false`\n * @public\n */\nfunction isValidStatusCode(code) {\n return (\n (code >= 1000 &&\n code <= 1014 &&\n code !== 1004 &&\n code !== 1005 &&\n code !== 1006) ||\n (code >= 3000 && code <= 4999)\n );\n}\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction _isValidUTF8(buf) {\n const len = buf.length;\n let i = 0;\n\n while (i < len) {\n if ((buf[i] & 0x80) === 0) {\n // 0xxxxxxx\n i++;\n } else if ((buf[i] & 0xe0) === 0xc0) {\n // 110xxxxx 10xxxxxx\n if (\n i + 1 === len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i] & 0xfe) === 0xc0 // Overlong\n ) {\n return false;\n }\n\n i += 2;\n } else if ((buf[i] & 0xf0) === 0xe0) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n if (\n i + 2 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80) || // Overlong\n (buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0) // Surrogate (U+D800 - U+DFFF)\n ) {\n return false;\n }\n\n i += 3;\n } else if ((buf[i] & 0xf8) === 0xf0) {\n // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n if (\n i + 3 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i + 3] & 0xc0) !== 0x80 ||\n (buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80) || // Overlong\n (buf[i] === 0xf4 && buf[i + 1] > 0x8f) ||\n buf[i] > 0xf4 // > U+10FFFF\n ) {\n return false;\n }\n\n i += 4;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Determines whether a value is a `Blob`.\n *\n * @param {*} value The value to be tested\n * @return {Boolean} `true` if `value` is a `Blob`, else `false`\n * @private\n */\nfunction isBlob(value) {\n return (\n hasBlob &&\n typeof value === 'object' &&\n typeof value.arrayBuffer === 'function' &&\n typeof value.type === 'string' &&\n typeof value.stream === 'function' &&\n (value[Symbol.toStringTag] === 'Blob' ||\n value[Symbol.toStringTag] === 'File')\n );\n}\n\nmodule.exports = {\n isBlob,\n isValidStatusCode,\n isValidUTF8: _isValidUTF8,\n tokenChars\n};\n\nif (isUtf8) {\n module.exports.isValidUTF8 = function (buf) {\n return buf.length < 24 ? _isValidUTF8(buf) : isUtf8(buf);\n };\n} /* istanbul ignore else */ else if (!process.env.WS_NO_UTF_8_VALIDATE) {\n try {\n const isValidUTF8 = require('utf-8-validate');\n\n module.exports.isValidUTF8 = function (buf) {\n return buf.length < 32 ? _isValidUTF8(buf) : isValidUTF8(buf);\n };\n } catch (e) {\n // Continue regardless of the error.\n }\n}\n","'use strict';\n\nconst { Writable } = require('stream');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n kStatusCode,\n kWebSocket\n} = require('./constants');\nconst { concat, toArrayBuffer, unmask } = require('./buffer-util');\nconst { isValidStatusCode, isValidUTF8 } = require('./validation');\n\nconst FastBuffer = Buffer[Symbol.species];\n\nconst GET_INFO = 0;\nconst GET_PAYLOAD_LENGTH_16 = 1;\nconst GET_PAYLOAD_LENGTH_64 = 2;\nconst GET_MASK = 3;\nconst GET_DATA = 4;\nconst INFLATING = 5;\nconst DEFER_EVENT = 6;\n\n/**\n * HyBi Receiver implementation.\n *\n * @extends Writable\n */\nclass Receiver extends Writable {\n /**\n * Creates a Receiver instance.\n *\n * @param {Object} [options] Options object\n * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether\n * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted\n * multiple times in the same tick\n * @param {String} [options.binaryType=nodebuffer] The type for binary data\n * @param {Object} [options.extensions] An object containing the negotiated\n * extensions\n * @param {Boolean} [options.isServer=false] Specifies whether to operate in\n * client or server mode\n * @param {Number} [options.maxPayload=0] The maximum allowed message length\n * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n * not to skip UTF-8 validation for text and close messages\n */\n constructor(options = {}) {\n super();\n\n this._allowSynchronousEvents =\n options.allowSynchronousEvents !== undefined\n ? options.allowSynchronousEvents\n : true;\n this._binaryType = options.binaryType || BINARY_TYPES[0];\n this._extensions = options.extensions || {};\n this._isServer = !!options.isServer;\n this._maxPayload = options.maxPayload | 0;\n this._skipUTF8Validation = !!options.skipUTF8Validation;\n this[kWebSocket] = undefined;\n\n this._bufferedBytes = 0;\n this._buffers = [];\n\n this._compressed = false;\n this._payloadLength = 0;\n this._mask = undefined;\n this._fragmented = 0;\n this._masked = false;\n this._fin = false;\n this._opcode = 0;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragments = [];\n\n this._errored = false;\n this._loop = false;\n this._state = GET_INFO;\n }\n\n /**\n * Implements `Writable.prototype._write()`.\n *\n * @param {Buffer} chunk The chunk of data to write\n * @param {String} encoding The character encoding of `chunk`\n * @param {Function} cb Callback\n * @private\n */\n _write(chunk, encoding, cb) {\n if (this._opcode === 0x08 && this._state == GET_INFO) return cb();\n\n this._bufferedBytes += chunk.length;\n this._buffers.push(chunk);\n this.startLoop(cb);\n }\n\n /**\n * Consumes `n` bytes from the buffered data.\n *\n * @param {Number} n The number of bytes to consume\n * @return {Buffer} The consumed bytes\n * @private\n */\n consume(n) {\n this._bufferedBytes -= n;\n\n if (n === this._buffers[0].length) return this._buffers.shift();\n\n if (n < this._buffers[0].length) {\n const buf = this._buffers[0];\n this._buffers[0] = new FastBuffer(\n buf.buffer,\n buf.byteOffset + n,\n buf.length - n\n );\n\n return new FastBuffer(buf.buffer, buf.byteOffset, n);\n }\n\n const dst = Buffer.allocUnsafe(n);\n\n do {\n const buf = this._buffers[0];\n const offset = dst.length - n;\n\n if (n >= buf.length) {\n dst.set(this._buffers.shift(), offset);\n } else {\n dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n), offset);\n this._buffers[0] = new FastBuffer(\n buf.buffer,\n buf.byteOffset + n,\n buf.length - n\n );\n }\n\n n -= buf.length;\n } while (n > 0);\n\n return dst;\n }\n\n /**\n * Starts the parsing loop.\n *\n * @param {Function} cb Callback\n * @private\n */\n startLoop(cb) {\n this._loop = true;\n\n do {\n switch (this._state) {\n case GET_INFO:\n this.getInfo(cb);\n break;\n case GET_PAYLOAD_LENGTH_16:\n this.getPayloadLength16(cb);\n break;\n case GET_PAYLOAD_LENGTH_64:\n this.getPayloadLength64(cb);\n break;\n case GET_MASK:\n this.getMask();\n break;\n case GET_DATA:\n this.getData(cb);\n break;\n case INFLATING:\n case DEFER_EVENT:\n this._loop = false;\n return;\n }\n } while (this._loop);\n\n if (!this._errored) cb();\n }\n\n /**\n * Reads the first two bytes of a frame.\n *\n * @param {Function} cb Callback\n * @private\n */\n getInfo(cb) {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(2);\n\n if ((buf[0] & 0x30) !== 0x00) {\n const error = this.createError(\n RangeError,\n 'RSV2 and RSV3 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_2_3'\n );\n\n cb(error);\n return;\n }\n\n const compressed = (buf[0] & 0x40) === 0x40;\n\n if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {\n const error = this.createError(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n\n cb(error);\n return;\n }\n\n this._fin = (buf[0] & 0x80) === 0x80;\n this._opcode = buf[0] & 0x0f;\n this._payloadLength = buf[1] & 0x7f;\n\n if (this._opcode === 0x00) {\n if (compressed) {\n const error = this.createError(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n\n cb(error);\n return;\n }\n\n if (!this._fragmented) {\n const error = this.createError(\n RangeError,\n 'invalid opcode 0',\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n\n cb(error);\n return;\n }\n\n this._opcode = this._fragmented;\n } else if (this._opcode === 0x01 || this._opcode === 0x02) {\n if (this._fragmented) {\n const error = this.createError(\n RangeError,\n `invalid opcode ${this._opcode}`,\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n\n cb(error);\n return;\n }\n\n this._compressed = compressed;\n } else if (this._opcode > 0x07 && this._opcode < 0x0b) {\n if (!this._fin) {\n const error = this.createError(\n RangeError,\n 'FIN must be set',\n true,\n 1002,\n 'WS_ERR_EXPECTED_FIN'\n );\n\n cb(error);\n return;\n }\n\n if (compressed) {\n const error = this.createError(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n\n cb(error);\n return;\n }\n\n if (\n this._payloadLength > 0x7d ||\n (this._opcode === 0x08 && this._payloadLength === 1)\n ) {\n const error = this.createError(\n RangeError,\n `invalid payload length ${this._payloadLength}`,\n true,\n 1002,\n 'WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH'\n );\n\n cb(error);\n return;\n }\n } else {\n const error = this.createError(\n RangeError,\n `invalid opcode ${this._opcode}`,\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n\n cb(error);\n return;\n }\n\n if (!this._fin && !this._fragmented) this._fragmented = this._opcode;\n this._masked = (buf[1] & 0x80) === 0x80;\n\n if (this._isServer) {\n if (!this._masked) {\n const error = this.createError(\n RangeError,\n 'MASK must be set',\n true,\n 1002,\n 'WS_ERR_EXPECTED_MASK'\n );\n\n cb(error);\n return;\n }\n } else if (this._masked) {\n const error = this.createError(\n RangeError,\n 'MASK must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_MASK'\n );\n\n cb(error);\n return;\n }\n\n if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16;\n else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64;\n else this.haveLength(cb);\n }\n\n /**\n * Gets extended payload length (7+16).\n *\n * @param {Function} cb Callback\n * @private\n */\n getPayloadLength16(cb) {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n this._payloadLength = this.consume(2).readUInt16BE(0);\n this.haveLength(cb);\n }\n\n /**\n * Gets extended payload length (7+64).\n *\n * @param {Function} cb Callback\n * @private\n */\n getPayloadLength64(cb) {\n if (this._bufferedBytes < 8) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(8);\n const num = buf.readUInt32BE(0);\n\n //\n // The maximum safe integer in JavaScript is 2^53 - 1. An error is returned\n // if payload length is greater than this number.\n //\n if (num > Math.pow(2, 53 - 32) - 1) {\n const error = this.createError(\n RangeError,\n 'Unsupported WebSocket frame: payload length > 2^53 - 1',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH'\n );\n\n cb(error);\n return;\n }\n\n this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4);\n this.haveLength(cb);\n }\n\n /**\n * Payload length has been read.\n *\n * @param {Function} cb Callback\n * @private\n */\n haveLength(cb) {\n if (this._payloadLength && this._opcode < 0x08) {\n this._totalPayloadLength += this._payloadLength;\n if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) {\n const error = this.createError(\n RangeError,\n 'Max payload size exceeded',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n );\n\n cb(error);\n return;\n }\n }\n\n if (this._masked) this._state = GET_MASK;\n else this._state = GET_DATA;\n }\n\n /**\n * Reads mask bytes.\n *\n * @private\n */\n getMask() {\n if (this._bufferedBytes < 4) {\n this._loop = false;\n return;\n }\n\n this._mask = this.consume(4);\n this._state = GET_DATA;\n }\n\n /**\n * Reads data bytes.\n *\n * @param {Function} cb Callback\n * @private\n */\n getData(cb) {\n let data = EMPTY_BUFFER;\n\n if (this._payloadLength) {\n if (this._bufferedBytes < this._payloadLength) {\n this._loop = false;\n return;\n }\n\n data = this.consume(this._payloadLength);\n\n if (\n this._masked &&\n (this._mask[0] | this._mask[1] | this._mask[2] | this._mask[3]) !== 0\n ) {\n unmask(data, this._mask);\n }\n }\n\n if (this._opcode > 0x07) {\n this.controlMessage(data, cb);\n return;\n }\n\n if (this._compressed) {\n this._state = INFLATING;\n this.decompress(data, cb);\n return;\n }\n\n if (data.length) {\n //\n // This message is not compressed so its length is the sum of the payload\n // length of all fragments.\n //\n this._messageLength = this._totalPayloadLength;\n this._fragments.push(data);\n }\n\n this.dataMessage(cb);\n }\n\n /**\n * Decompresses data.\n *\n * @param {Buffer} data Compressed data\n * @param {Function} cb Callback\n * @private\n */\n decompress(data, cb) {\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n perMessageDeflate.decompress(data, this._fin, (err, buf) => {\n if (err) return cb(err);\n\n if (buf.length) {\n this._messageLength += buf.length;\n if (this._messageLength > this._maxPayload && this._maxPayload > 0) {\n const error = this.createError(\n RangeError,\n 'Max payload size exceeded',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n );\n\n cb(error);\n return;\n }\n\n this._fragments.push(buf);\n }\n\n this.dataMessage(cb);\n if (this._state === GET_INFO) this.startLoop(cb);\n });\n }\n\n /**\n * Handles a data message.\n *\n * @param {Function} cb Callback\n * @private\n */\n dataMessage(cb) {\n if (!this._fin) {\n this._state = GET_INFO;\n return;\n }\n\n const messageLength = this._messageLength;\n const fragments = this._fragments;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragmented = 0;\n this._fragments = [];\n\n if (this._opcode === 2) {\n let data;\n\n if (this._binaryType === 'nodebuffer') {\n data = concat(fragments, messageLength);\n } else if (this._binaryType === 'arraybuffer') {\n data = toArrayBuffer(concat(fragments, messageLength));\n } else if (this._binaryType === 'blob') {\n data = new Blob(fragments);\n } else {\n data = fragments;\n }\n\n if (this._allowSynchronousEvents) {\n this.emit('message', data, true);\n this._state = GET_INFO;\n } else {\n this._state = DEFER_EVENT;\n setImmediate(() => {\n this.emit('message', data, true);\n this._state = GET_INFO;\n this.startLoop(cb);\n });\n }\n } else {\n const buf = concat(fragments, messageLength);\n\n if (!this._skipUTF8Validation && !isValidUTF8(buf)) {\n const error = this.createError(\n Error,\n 'invalid UTF-8 sequence',\n true,\n 1007,\n 'WS_ERR_INVALID_UTF8'\n );\n\n cb(error);\n return;\n }\n\n if (this._state === INFLATING || this._allowSynchronousEvents) {\n this.emit('message', buf, false);\n this._state = GET_INFO;\n } else {\n this._state = DEFER_EVENT;\n setImmediate(() => {\n this.emit('message', buf, false);\n this._state = GET_INFO;\n this.startLoop(cb);\n });\n }\n }\n }\n\n /**\n * Handles a control message.\n *\n * @param {Buffer} data Data to handle\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n controlMessage(data, cb) {\n if (this._opcode === 0x08) {\n if (data.length === 0) {\n this._loop = false;\n this.emit('conclude', 1005, EMPTY_BUFFER);\n this.end();\n } else {\n const code = data.readUInt16BE(0);\n\n if (!isValidStatusCode(code)) {\n const error = this.createError(\n RangeError,\n `invalid status code ${code}`,\n true,\n 1002,\n 'WS_ERR_INVALID_CLOSE_CODE'\n );\n\n cb(error);\n return;\n }\n\n const buf = new FastBuffer(\n data.buffer,\n data.byteOffset + 2,\n data.length - 2\n );\n\n if (!this._skipUTF8Validation && !isValidUTF8(buf)) {\n const error = this.createError(\n Error,\n 'invalid UTF-8 sequence',\n true,\n 1007,\n 'WS_ERR_INVALID_UTF8'\n );\n\n cb(error);\n return;\n }\n\n this._loop = false;\n this.emit('conclude', code, buf);\n this.end();\n }\n\n this._state = GET_INFO;\n return;\n }\n\n if (this._allowSynchronousEvents) {\n this.emit(this._opcode === 0x09 ? 'ping' : 'pong', data);\n this._state = GET_INFO;\n } else {\n this._state = DEFER_EVENT;\n setImmediate(() => {\n this.emit(this._opcode === 0x09 ? 'ping' : 'pong', data);\n this._state = GET_INFO;\n this.startLoop(cb);\n });\n }\n }\n\n /**\n * Builds an error object.\n *\n * @param {function(new:Error|RangeError)} ErrorCtor The error constructor\n * @param {String} message The error message\n * @param {Boolean} prefix Specifies whether or not to add a default prefix to\n * `message`\n * @param {Number} statusCode The status code\n * @param {String} errorCode The exposed error code\n * @return {(Error|RangeError)} The error\n * @private\n */\n createError(ErrorCtor, message, prefix, statusCode, errorCode) {\n this._loop = false;\n this._errored = true;\n\n const err = new ErrorCtor(\n prefix ? `Invalid WebSocket frame: ${message}` : message\n );\n\n Error.captureStackTrace(err, this.createError);\n err.code = errorCode;\n err[kStatusCode] = statusCode;\n return err;\n }\n}\n\nmodule.exports = Receiver;\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Duplex\" }] */\n\n'use strict';\n\nconst { Duplex } = require('stream');\nconst { randomFillSync } = require('crypto');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst { EMPTY_BUFFER, kWebSocket, NOOP } = require('./constants');\nconst { isBlob, isValidStatusCode } = require('./validation');\nconst { mask: applyMask, toBuffer } = require('./buffer-util');\n\nconst kByteLength = Symbol('kByteLength');\nconst maskBuffer = Buffer.alloc(4);\nconst RANDOM_POOL_SIZE = 8 * 1024;\nlet randomPool;\nlet randomPoolPointer = RANDOM_POOL_SIZE;\n\nconst DEFAULT = 0;\nconst DEFLATING = 1;\nconst GET_BLOB_DATA = 2;\n\n/**\n * HyBi Sender implementation.\n */\nclass Sender {\n /**\n * Creates a Sender instance.\n *\n * @param {Duplex} socket The connection socket\n * @param {Object} [extensions] An object containing the negotiated extensions\n * @param {Function} [generateMask] The function used to generate the masking\n * key\n */\n constructor(socket, extensions, generateMask) {\n this._extensions = extensions || {};\n\n if (generateMask) {\n this._generateMask = generateMask;\n this._maskBuffer = Buffer.alloc(4);\n }\n\n this._socket = socket;\n\n this._firstFragment = true;\n this._compress = false;\n\n this._bufferedBytes = 0;\n this._queue = [];\n this._state = DEFAULT;\n this.onerror = NOOP;\n this[kWebSocket] = undefined;\n }\n\n /**\n * Frames a piece of data according to the HyBi WebSocket protocol.\n *\n * @param {(Buffer|String)} data The data to frame\n * @param {Object} options Options object\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Buffer} [options.maskBuffer] The buffer used to store the masking\n * key\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @return {(Buffer|String)[]} The framed data\n * @public\n */\n static frame(data, options) {\n let mask;\n let merge = false;\n let offset = 2;\n let skipMasking = false;\n\n if (options.mask) {\n mask = options.maskBuffer || maskBuffer;\n\n if (options.generateMask) {\n options.generateMask(mask);\n } else {\n if (randomPoolPointer === RANDOM_POOL_SIZE) {\n /* istanbul ignore else */\n if (randomPool === undefined) {\n //\n // This is lazily initialized because server-sent frames must not\n // be masked so it may never be used.\n //\n randomPool = Buffer.alloc(RANDOM_POOL_SIZE);\n }\n\n randomFillSync(randomPool, 0, RANDOM_POOL_SIZE);\n randomPoolPointer = 0;\n }\n\n mask[0] = randomPool[randomPoolPointer++];\n mask[1] = randomPool[randomPoolPointer++];\n mask[2] = randomPool[randomPoolPointer++];\n mask[3] = randomPool[randomPoolPointer++];\n }\n\n skipMasking = (mask[0] | mask[1] | mask[2] | mask[3]) === 0;\n offset = 6;\n }\n\n let dataLength;\n\n if (typeof data === 'string') {\n if (\n (!options.mask || skipMasking) &&\n options[kByteLength] !== undefined\n ) {\n dataLength = options[kByteLength];\n } else {\n data = Buffer.from(data);\n dataLength = data.length;\n }\n } else {\n dataLength = data.length;\n merge = options.mask && options.readOnly && !skipMasking;\n }\n\n let payloadLength = dataLength;\n\n if (dataLength >= 65536) {\n offset += 8;\n payloadLength = 127;\n } else if (dataLength > 125) {\n offset += 2;\n payloadLength = 126;\n }\n\n const target = Buffer.allocUnsafe(merge ? dataLength + offset : offset);\n\n target[0] = options.fin ? options.opcode | 0x80 : options.opcode;\n if (options.rsv1) target[0] |= 0x40;\n\n target[1] = payloadLength;\n\n if (payloadLength === 126) {\n target.writeUInt16BE(dataLength, 2);\n } else if (payloadLength === 127) {\n target[2] = target[3] = 0;\n target.writeUIntBE(dataLength, 4, 6);\n }\n\n if (!options.mask) return [target, data];\n\n target[1] |= 0x80;\n target[offset - 4] = mask[0];\n target[offset - 3] = mask[1];\n target[offset - 2] = mask[2];\n target[offset - 1] = mask[3];\n\n if (skipMasking) return [target, data];\n\n if (merge) {\n applyMask(data, mask, target, offset, dataLength);\n return [target];\n }\n\n applyMask(data, mask, data, 0, dataLength);\n return [target, data];\n }\n\n /**\n * Sends a close message to the other peer.\n *\n * @param {Number} [code] The status code component of the body\n * @param {(String|Buffer)} [data] The message component of the body\n * @param {Boolean} [mask=false] Specifies whether or not to mask the message\n * @param {Function} [cb] Callback\n * @public\n */\n close(code, data, mask, cb) {\n let buf;\n\n if (code === undefined) {\n buf = EMPTY_BUFFER;\n } else if (typeof code !== 'number' || !isValidStatusCode(code)) {\n throw new TypeError('First argument must be a valid error code number');\n } else if (data === undefined || !data.length) {\n buf = Buffer.allocUnsafe(2);\n buf.writeUInt16BE(code, 0);\n } else {\n const length = Buffer.byteLength(data);\n\n if (length > 123) {\n throw new RangeError('The message must not be greater than 123 bytes');\n }\n\n buf = Buffer.allocUnsafe(2 + length);\n buf.writeUInt16BE(code, 0);\n\n if (typeof data === 'string') {\n buf.write(data, 2);\n } else {\n buf.set(data, 2);\n }\n }\n\n const options = {\n [kByteLength]: buf.length,\n fin: true,\n generateMask: this._generateMask,\n mask,\n maskBuffer: this._maskBuffer,\n opcode: 0x08,\n readOnly: false,\n rsv1: false\n };\n\n if (this._state !== DEFAULT) {\n this.enqueue([this.dispatch, buf, false, options, cb]);\n } else {\n this.sendFrame(Sender.frame(buf, options), cb);\n }\n }\n\n /**\n * Sends a ping message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n ping(data, mask, cb) {\n let byteLength;\n let readOnly;\n\n if (typeof data === 'string') {\n byteLength = Buffer.byteLength(data);\n readOnly = false;\n } else if (isBlob(data)) {\n byteLength = data.size;\n readOnly = false;\n } else {\n data = toBuffer(data);\n byteLength = data.length;\n readOnly = toBuffer.readOnly;\n }\n\n if (byteLength > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n const options = {\n [kByteLength]: byteLength,\n fin: true,\n generateMask: this._generateMask,\n mask,\n maskBuffer: this._maskBuffer,\n opcode: 0x09,\n readOnly,\n rsv1: false\n };\n\n if (isBlob(data)) {\n if (this._state !== DEFAULT) {\n this.enqueue([this.getBlobData, data, false, options, cb]);\n } else {\n this.getBlobData(data, false, options, cb);\n }\n } else if (this._state !== DEFAULT) {\n this.enqueue([this.dispatch, data, false, options, cb]);\n } else {\n this.sendFrame(Sender.frame(data, options), cb);\n }\n }\n\n /**\n * Sends a pong message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n pong(data, mask, cb) {\n let byteLength;\n let readOnly;\n\n if (typeof data === 'string') {\n byteLength = Buffer.byteLength(data);\n readOnly = false;\n } else if (isBlob(data)) {\n byteLength = data.size;\n readOnly = false;\n } else {\n data = toBuffer(data);\n byteLength = data.length;\n readOnly = toBuffer.readOnly;\n }\n\n if (byteLength > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n const options = {\n [kByteLength]: byteLength,\n fin: true,\n generateMask: this._generateMask,\n mask,\n maskBuffer: this._maskBuffer,\n opcode: 0x0a,\n readOnly,\n rsv1: false\n };\n\n if (isBlob(data)) {\n if (this._state !== DEFAULT) {\n this.enqueue([this.getBlobData, data, false, options, cb]);\n } else {\n this.getBlobData(data, false, options, cb);\n }\n } else if (this._state !== DEFAULT) {\n this.enqueue([this.dispatch, data, false, options, cb]);\n } else {\n this.sendFrame(Sender.frame(data, options), cb);\n }\n }\n\n /**\n * Sends a data message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Object} options Options object\n * @param {Boolean} [options.binary=false] Specifies whether `data` is binary\n * or text\n * @param {Boolean} [options.compress=false] Specifies whether or not to\n * compress `data`\n * @param {Boolean} [options.fin=false] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Function} [cb] Callback\n * @public\n */\n send(data, options, cb) {\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n let opcode = options.binary ? 2 : 1;\n let rsv1 = options.compress;\n\n let byteLength;\n let readOnly;\n\n if (typeof data === 'string') {\n byteLength = Buffer.byteLength(data);\n readOnly = false;\n } else if (isBlob(data)) {\n byteLength = data.size;\n readOnly = false;\n } else {\n data = toBuffer(data);\n byteLength = data.length;\n readOnly = toBuffer.readOnly;\n }\n\n if (this._firstFragment) {\n this._firstFragment = false;\n if (\n rsv1 &&\n perMessageDeflate &&\n perMessageDeflate.params[\n perMessageDeflate._isServer\n ? 'server_no_context_takeover'\n : 'client_no_context_takeover'\n ]\n ) {\n rsv1 = byteLength >= perMessageDeflate._threshold;\n }\n this._compress = rsv1;\n } else {\n rsv1 = false;\n opcode = 0;\n }\n\n if (options.fin) this._firstFragment = true;\n\n const opts = {\n [kByteLength]: byteLength,\n fin: options.fin,\n generateMask: this._generateMask,\n mask: options.mask,\n maskBuffer: this._maskBuffer,\n opcode,\n readOnly,\n rsv1\n };\n\n if (isBlob(data)) {\n if (this._state !== DEFAULT) {\n this.enqueue([this.getBlobData, data, this._compress, opts, cb]);\n } else {\n this.getBlobData(data, this._compress, opts, cb);\n }\n } else if (this._state !== DEFAULT) {\n this.enqueue([this.dispatch, data, this._compress, opts, cb]);\n } else {\n this.dispatch(data, this._compress, opts, cb);\n }\n }\n\n /**\n * Gets the contents of a blob as binary data.\n *\n * @param {Blob} blob The blob\n * @param {Boolean} [compress=false] Specifies whether or not to compress\n * the data\n * @param {Object} options Options object\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Buffer} [options.maskBuffer] The buffer used to store the masking\n * key\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @param {Function} [cb] Callback\n * @private\n */\n getBlobData(blob, compress, options, cb) {\n this._bufferedBytes += options[kByteLength];\n this._state = GET_BLOB_DATA;\n\n blob\n .arrayBuffer()\n .then((arrayBuffer) => {\n if (this._socket.destroyed) {\n const err = new Error(\n 'The socket was closed while the blob was being read'\n );\n\n //\n // `callCallbacks` is called in the next tick to ensure that errors\n // that might be thrown in the callbacks behave like errors thrown\n // outside the promise chain.\n //\n process.nextTick(callCallbacks, this, err, cb);\n return;\n }\n\n this._bufferedBytes -= options[kByteLength];\n const data = toBuffer(arrayBuffer);\n\n if (!compress) {\n this._state = DEFAULT;\n this.sendFrame(Sender.frame(data, options), cb);\n this.dequeue();\n } else {\n this.dispatch(data, compress, options, cb);\n }\n })\n .catch((err) => {\n //\n // `onError` is called in the next tick for the same reason that\n // `callCallbacks` above is.\n //\n process.nextTick(onError, this, err, cb);\n });\n }\n\n /**\n * Dispatches a message.\n *\n * @param {(Buffer|String)} data The message to send\n * @param {Boolean} [compress=false] Specifies whether or not to compress\n * `data`\n * @param {Object} options Options object\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Buffer} [options.maskBuffer] The buffer used to store the masking\n * key\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @param {Function} [cb] Callback\n * @private\n */\n dispatch(data, compress, options, cb) {\n if (!compress) {\n this.sendFrame(Sender.frame(data, options), cb);\n return;\n }\n\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n this._bufferedBytes += options[kByteLength];\n this._state = DEFLATING;\n perMessageDeflate.compress(data, options.fin, (_, buf) => {\n if (this._socket.destroyed) {\n const err = new Error(\n 'The socket was closed while data was being compressed'\n );\n\n callCallbacks(this, err, cb);\n return;\n }\n\n this._bufferedBytes -= options[kByteLength];\n this._state = DEFAULT;\n options.readOnly = false;\n this.sendFrame(Sender.frame(buf, options), cb);\n this.dequeue();\n });\n }\n\n /**\n * Executes queued send operations.\n *\n * @private\n */\n dequeue() {\n while (this._state === DEFAULT && this._queue.length) {\n const params = this._queue.shift();\n\n this._bufferedBytes -= params[3][kByteLength];\n Reflect.apply(params[0], this, params.slice(1));\n }\n }\n\n /**\n * Enqueues a send operation.\n *\n * @param {Array} params Send operation parameters.\n * @private\n */\n enqueue(params) {\n this._bufferedBytes += params[3][kByteLength];\n this._queue.push(params);\n }\n\n /**\n * Sends a frame.\n *\n * @param {(Buffer | String)[]} list The frame to send\n * @param {Function} [cb] Callback\n * @private\n */\n sendFrame(list, cb) {\n if (list.length === 2) {\n this._socket.cork();\n this._socket.write(list[0]);\n this._socket.write(list[1], cb);\n this._socket.uncork();\n } else {\n this._socket.write(list[0], cb);\n }\n }\n}\n\nmodule.exports = Sender;\n\n/**\n * Calls queued callbacks with an error.\n *\n * @param {Sender} sender The `Sender` instance\n * @param {Error} err The error to call the callbacks with\n * @param {Function} [cb] The first callback\n * @private\n */\nfunction callCallbacks(sender, err, cb) {\n if (typeof cb === 'function') cb(err);\n\n for (let i = 0; i < sender._queue.length; i++) {\n const params = sender._queue[i];\n const callback = params[params.length - 1];\n\n if (typeof callback === 'function') callback(err);\n }\n}\n\n/**\n * Handles a `Sender` error.\n *\n * @param {Sender} sender The `Sender` instance\n * @param {Error} err The error\n * @param {Function} [cb] The first pending callback\n * @private\n */\nfunction onError(sender, err, cb) {\n callCallbacks(sender, err, cb);\n sender.onerror(err);\n}\n","'use strict';\n\nconst { kForOnEventAttribute, kListener } = require('./constants');\n\nconst kCode = Symbol('kCode');\nconst kData = Symbol('kData');\nconst kError = Symbol('kError');\nconst kMessage = Symbol('kMessage');\nconst kReason = Symbol('kReason');\nconst kTarget = Symbol('kTarget');\nconst kType = Symbol('kType');\nconst kWasClean = Symbol('kWasClean');\n\n/**\n * Class representing an event.\n */\nclass Event {\n /**\n * Create a new `Event`.\n *\n * @param {String} type The name of the event\n * @throws {TypeError} If the `type` argument is not specified\n */\n constructor(type) {\n this[kTarget] = null;\n this[kType] = type;\n }\n\n /**\n * @type {*}\n */\n get target() {\n return this[kTarget];\n }\n\n /**\n * @type {String}\n */\n get type() {\n return this[kType];\n }\n}\n\nObject.defineProperty(Event.prototype, 'target', { enumerable: true });\nObject.defineProperty(Event.prototype, 'type', { enumerable: true });\n\n/**\n * Class representing a close event.\n *\n * @extends Event\n */\nclass CloseEvent extends Event {\n /**\n * Create a new `CloseEvent`.\n *\n * @param {String} type The name of the event\n * @param {Object} [options] A dictionary object that allows for setting\n * attributes via object members of the same name\n * @param {Number} [options.code=0] The status code explaining why the\n * connection was closed\n * @param {String} [options.reason=''] A human-readable string explaining why\n * the connection was closed\n * @param {Boolean} [options.wasClean=false] Indicates whether or not the\n * connection was cleanly closed\n */\n constructor(type, options = {}) {\n super(type);\n\n this[kCode] = options.code === undefined ? 0 : options.code;\n this[kReason] = options.reason === undefined ? '' : options.reason;\n this[kWasClean] = options.wasClean === undefined ? false : options.wasClean;\n }\n\n /**\n * @type {Number}\n */\n get code() {\n return this[kCode];\n }\n\n /**\n * @type {String}\n */\n get reason() {\n return this[kReason];\n }\n\n /**\n * @type {Boolean}\n */\n get wasClean() {\n return this[kWasClean];\n }\n}\n\nObject.defineProperty(CloseEvent.prototype, 'code', { enumerable: true });\nObject.defineProperty(CloseEvent.prototype, 'reason', { enumerable: true });\nObject.defineProperty(CloseEvent.prototype, 'wasClean', { enumerable: true });\n\n/**\n * Class representing an error event.\n *\n * @extends Event\n */\nclass ErrorEvent extends Event {\n /**\n * Create a new `ErrorEvent`.\n *\n * @param {String} type The name of the event\n * @param {Object} [options] A dictionary object that allows for setting\n * attributes via object members of the same name\n * @param {*} [options.error=null] The error that generated this event\n * @param {String} [options.message=''] The error message\n */\n constructor(type, options = {}) {\n super(type);\n\n this[kError] = options.error === undefined ? null : options.error;\n this[kMessage] = options.message === undefined ? '' : options.message;\n }\n\n /**\n * @type {*}\n */\n get error() {\n return this[kError];\n }\n\n /**\n * @type {String}\n */\n get message() {\n return this[kMessage];\n }\n}\n\nObject.defineProperty(ErrorEvent.prototype, 'error', { enumerable: true });\nObject.defineProperty(ErrorEvent.prototype, 'message', { enumerable: true });\n\n/**\n * Class representing a message event.\n *\n * @extends Event\n */\nclass MessageEvent extends Event {\n /**\n * Create a new `MessageEvent`.\n *\n * @param {String} type The name of the event\n * @param {Object} [options] A dictionary object that allows for setting\n * attributes via object members of the same name\n * @param {*} [options.data=null] The message content\n */\n constructor(type, options = {}) {\n super(type);\n\n this[kData] = options.data === undefined ? null : options.data;\n }\n\n /**\n * @type {*}\n */\n get data() {\n return this[kData];\n }\n}\n\nObject.defineProperty(MessageEvent.prototype, 'data', { enumerable: true });\n\n/**\n * This provides methods for emulating the `EventTarget` interface. It's not\n * meant to be used directly.\n *\n * @mixin\n */\nconst EventTarget = {\n /**\n * Register an event listener.\n *\n * @param {String} type A string representing the event type to listen for\n * @param {(Function|Object)} handler The listener to add\n * @param {Object} [options] An options object specifies characteristics about\n * the event listener\n * @param {Boolean} [options.once=false] A `Boolean` indicating that the\n * listener should be invoked at most once after being added. If `true`,\n * the listener would be automatically removed when invoked.\n * @public\n */\n addEventListener(type, handler, options = {}) {\n for (const listener of this.listeners(type)) {\n if (\n !options[kForOnEventAttribute] &&\n listener[kListener] === handler &&\n !listener[kForOnEventAttribute]\n ) {\n return;\n }\n }\n\n let wrapper;\n\n if (type === 'message') {\n wrapper = function onMessage(data, isBinary) {\n const event = new MessageEvent('message', {\n data: isBinary ? data : data.toString()\n });\n\n event[kTarget] = this;\n callListener(handler, this, event);\n };\n } else if (type === 'close') {\n wrapper = function onClose(code, message) {\n const event = new CloseEvent('close', {\n code,\n reason: message.toString(),\n wasClean: this._closeFrameReceived && this._closeFrameSent\n });\n\n event[kTarget] = this;\n callListener(handler, this, event);\n };\n } else if (type === 'error') {\n wrapper = function onError(error) {\n const event = new ErrorEvent('error', {\n error,\n message: error.message\n });\n\n event[kTarget] = this;\n callListener(handler, this, event);\n };\n } else if (type === 'open') {\n wrapper = function onOpen() {\n const event = new Event('open');\n\n event[kTarget] = this;\n callListener(handler, this, event);\n };\n } else {\n return;\n }\n\n wrapper[kForOnEventAttribute] = !!options[kForOnEventAttribute];\n wrapper[kListener] = handler;\n\n if (options.once) {\n this.once(type, wrapper);\n } else {\n this.on(type, wrapper);\n }\n },\n\n /**\n * Remove an event listener.\n *\n * @param {String} type A string representing the event type to remove\n * @param {(Function|Object)} handler The listener to remove\n * @public\n */\n removeEventListener(type, handler) {\n for (const listener of this.listeners(type)) {\n if (listener[kListener] === handler && !listener[kForOnEventAttribute]) {\n this.removeListener(type, listener);\n break;\n }\n }\n }\n};\n\nmodule.exports = {\n CloseEvent,\n ErrorEvent,\n Event,\n EventTarget,\n MessageEvent\n};\n\n/**\n * Call an event listener\n *\n * @param {(Function|Object)} listener The listener to call\n * @param {*} thisArg The value to use as `this`` when calling the listener\n * @param {Event} event The event to pass to the listener\n * @private\n */\nfunction callListener(listener, thisArg, event) {\n if (typeof listener === 'object' && listener.handleEvent) {\n listener.handleEvent.call(listener, event);\n } else {\n listener.call(thisArg, event);\n }\n}\n","'use strict';\n\nconst { tokenChars } = require('./validation');\n\n/**\n * Adds an offer to the map of extension offers or a parameter to the map of\n * parameters.\n *\n * @param {Object} dest The map of extension offers or parameters\n * @param {String} name The extension or parameter name\n * @param {(Object|Boolean|String)} elem The extension parameters or the\n * parameter value\n * @private\n */\nfunction push(dest, name, elem) {\n if (dest[name] === undefined) dest[name] = [elem];\n else dest[name].push(elem);\n}\n\n/**\n * Parses the `Sec-WebSocket-Extensions` header into an object.\n *\n * @param {String} header The field value of the header\n * @return {Object} The parsed object\n * @public\n */\nfunction parse(header) {\n const offers = Object.create(null);\n let params = Object.create(null);\n let mustUnescape = false;\n let isEscaping = false;\n let inQuotes = false;\n let extensionName;\n let paramName;\n let start = -1;\n let code = -1;\n let end = -1;\n let i = 0;\n\n for (; i < header.length; i++) {\n code = header.charCodeAt(i);\n\n if (extensionName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (\n i !== 0 &&\n (code === 0x20 /* ' ' */ || code === 0x09) /* '\\t' */\n ) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b /* ';' */ || code === 0x2c /* ',' */) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n const name = header.slice(start, end);\n if (code === 0x2c) {\n push(offers, name, params);\n params = Object.create(null);\n } else {\n extensionName = name;\n }\n\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (paramName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 || code === 0x09) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n push(params, header.slice(start, end), true);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n start = end = -1;\n } else if (code === 0x3d /* '=' */ && start !== -1 && end === -1) {\n paramName = header.slice(start, i);\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else {\n //\n // The value of a quoted-string after unescaping must conform to the\n // token ABNF, so only token characters are valid.\n // Ref: https://tools.ietf.org/html/rfc6455#section-9.1\n //\n if (isEscaping) {\n if (tokenChars[code] !== 1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n if (start === -1) start = i;\n else if (!mustUnescape) mustUnescape = true;\n isEscaping = false;\n } else if (inQuotes) {\n if (tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x22 /* '\"' */ && start !== -1) {\n inQuotes = false;\n end = i;\n } else if (code === 0x5c /* '\\' */) {\n isEscaping = true;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3d) {\n inQuotes = true;\n } else if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (start !== -1 && (code === 0x20 || code === 0x09)) {\n if (end === -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n let value = header.slice(start, end);\n if (mustUnescape) {\n value = value.replace(/\\\\/g, '');\n mustUnescape = false;\n }\n push(params, paramName, value);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n paramName = undefined;\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n }\n }\n\n if (start === -1 || inQuotes || code === 0x20 || code === 0x09) {\n throw new SyntaxError('Unexpected end of input');\n }\n\n if (end === -1) end = i;\n const token = header.slice(start, end);\n if (extensionName === undefined) {\n push(offers, token, params);\n } else {\n if (paramName === undefined) {\n push(params, token, true);\n } else if (mustUnescape) {\n push(params, paramName, token.replace(/\\\\/g, ''));\n } else {\n push(params, paramName, token);\n }\n push(offers, extensionName, params);\n }\n\n return offers;\n}\n\n/**\n * Builds the `Sec-WebSocket-Extensions` header field value.\n *\n * @param {Object} extensions The map of extensions and parameters to format\n * @return {String} A string representing the given object\n * @public\n */\nfunction format(extensions) {\n return Object.keys(extensions)\n .map((extension) => {\n let configurations = extensions[extension];\n if (!Array.isArray(configurations)) configurations = [configurations];\n return configurations\n .map((params) => {\n return [extension]\n .concat(\n Object.keys(params).map((k) => {\n let values = params[k];\n if (!Array.isArray(values)) values = [values];\n return values\n .map((v) => (v === true ? k : `${k}=${v}`))\n .join('; ');\n })\n )\n .join('; ');\n })\n .join(', ');\n })\n .join(', ');\n}\n\nmodule.exports = { format, parse };\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Duplex|Readable$\", \"caughtErrors\": \"none\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst https = require('https');\nconst http = require('http');\nconst net = require('net');\nconst tls = require('tls');\nconst { randomBytes, createHash } = require('crypto');\nconst { Duplex, Readable } = require('stream');\nconst { URL } = require('url');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst Receiver = require('./receiver');\nconst Sender = require('./sender');\nconst { isBlob } = require('./validation');\n\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n GUID,\n kForOnEventAttribute,\n kListener,\n kStatusCode,\n kWebSocket,\n NOOP\n} = require('./constants');\nconst {\n EventTarget: { addEventListener, removeEventListener }\n} = require('./event-target');\nconst { format, parse } = require('./extension');\nconst { toBuffer } = require('./buffer-util');\n\nconst closeTimeout = 30 * 1000;\nconst kAborted = Symbol('kAborted');\nconst protocolVersions = [8, 13];\nconst readyStates = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'];\nconst subprotocolRegex = /^[!#$%&'*+\\-.0-9A-Z^_`|a-z~]+$/;\n\n/**\n * Class representing a WebSocket.\n *\n * @extends EventEmitter\n */\nclass WebSocket extends EventEmitter {\n /**\n * Create a new `WebSocket`.\n *\n * @param {(String|URL)} address The URL to which to connect\n * @param {(String|String[])} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n */\n constructor(address, protocols, options) {\n super();\n\n this._binaryType = BINARY_TYPES[0];\n this._closeCode = 1006;\n this._closeFrameReceived = false;\n this._closeFrameSent = false;\n this._closeMessage = EMPTY_BUFFER;\n this._closeTimer = null;\n this._errorEmitted = false;\n this._extensions = {};\n this._paused = false;\n this._protocol = '';\n this._readyState = WebSocket.CONNECTING;\n this._receiver = null;\n this._sender = null;\n this._socket = null;\n\n if (address !== null) {\n this._bufferedAmount = 0;\n this._isServer = false;\n this._redirects = 0;\n\n if (protocols === undefined) {\n protocols = [];\n } else if (!Array.isArray(protocols)) {\n if (typeof protocols === 'object' && protocols !== null) {\n options = protocols;\n protocols = [];\n } else {\n protocols = [protocols];\n }\n }\n\n initAsClient(this, address, protocols, options);\n } else {\n this._autoPong = options.autoPong;\n this._isServer = true;\n }\n }\n\n /**\n * For historical reasons, the custom \"nodebuffer\" type is used by the default\n * instead of \"blob\".\n *\n * @type {String}\n */\n get binaryType() {\n return this._binaryType;\n }\n\n set binaryType(type) {\n if (!BINARY_TYPES.includes(type)) return;\n\n this._binaryType = type;\n\n //\n // Allow to change `binaryType` on the fly.\n //\n if (this._receiver) this._receiver._binaryType = type;\n }\n\n /**\n * @type {Number}\n */\n get bufferedAmount() {\n if (!this._socket) return this._bufferedAmount;\n\n return this._socket._writableState.length + this._sender._bufferedBytes;\n }\n\n /**\n * @type {String}\n */\n get extensions() {\n return Object.keys(this._extensions).join();\n }\n\n /**\n * @type {Boolean}\n */\n get isPaused() {\n return this._paused;\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onclose() {\n return null;\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onerror() {\n return null;\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onopen() {\n return null;\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onmessage() {\n return null;\n }\n\n /**\n * @type {String}\n */\n get protocol() {\n return this._protocol;\n }\n\n /**\n * @type {Number}\n */\n get readyState() {\n return this._readyState;\n }\n\n /**\n * @type {String}\n */\n get url() {\n return this._url;\n }\n\n /**\n * Set up the socket and the internal resources.\n *\n * @param {Duplex} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Object} options Options object\n * @param {Boolean} [options.allowSynchronousEvents=false] Specifies whether\n * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted\n * multiple times in the same tick\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Number} [options.maxPayload=0] The maximum allowed message size\n * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n * not to skip UTF-8 validation for text and close messages\n * @private\n */\n setSocket(socket, head, options) {\n const receiver = new Receiver({\n allowSynchronousEvents: options.allowSynchronousEvents,\n binaryType: this.binaryType,\n extensions: this._extensions,\n isServer: this._isServer,\n maxPayload: options.maxPayload,\n skipUTF8Validation: options.skipUTF8Validation\n });\n\n const sender = new Sender(socket, this._extensions, options.generateMask);\n\n this._receiver = receiver;\n this._sender = sender;\n this._socket = socket;\n\n receiver[kWebSocket] = this;\n sender[kWebSocket] = this;\n socket[kWebSocket] = this;\n\n receiver.on('conclude', receiverOnConclude);\n receiver.on('drain', receiverOnDrain);\n receiver.on('error', receiverOnError);\n receiver.on('message', receiverOnMessage);\n receiver.on('ping', receiverOnPing);\n receiver.on('pong', receiverOnPong);\n\n sender.onerror = senderOnError;\n\n //\n // These methods may not be available if `socket` is just a `Duplex`.\n //\n if (socket.setTimeout) socket.setTimeout(0);\n if (socket.setNoDelay) socket.setNoDelay();\n\n if (head.length > 0) socket.unshift(head);\n\n socket.on('close', socketOnClose);\n socket.on('data', socketOnData);\n socket.on('end', socketOnEnd);\n socket.on('error', socketOnError);\n\n this._readyState = WebSocket.OPEN;\n this.emit('open');\n }\n\n /**\n * Emit the `'close'` event.\n *\n * @private\n */\n emitClose() {\n if (!this._socket) {\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n return;\n }\n\n if (this._extensions[PerMessageDeflate.extensionName]) {\n this._extensions[PerMessageDeflate.extensionName].cleanup();\n }\n\n this._receiver.removeAllListeners();\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n }\n\n /**\n * Start a closing handshake.\n *\n * +----------+ +-----------+ +----------+\n * - - -|ws.close()|-->|close frame|-->|ws.close()|- - -\n * | +----------+ +-----------+ +----------+ |\n * +----------+ +-----------+ |\n * CLOSING |ws.close()|<--|close frame|<--+-----+ CLOSING\n * +----------+ +-----------+ |\n * | | | +---+ |\n * +------------------------+-->|fin| - - - -\n * | +---+ | +---+\n * - - - - -|fin|<---------------------+\n * +---+\n *\n * @param {Number} [code] Status code explaining why the connection is closing\n * @param {(String|Buffer)} [data] The reason why the connection is\n * closing\n * @public\n */\n close(code, data) {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n abortHandshake(this, this._req, msg);\n return;\n }\n\n if (this.readyState === WebSocket.CLOSING) {\n if (\n this._closeFrameSent &&\n (this._closeFrameReceived || this._receiver._writableState.errorEmitted)\n ) {\n this._socket.end();\n }\n\n return;\n }\n\n this._readyState = WebSocket.CLOSING;\n this._sender.close(code, data, !this._isServer, (err) => {\n //\n // This error is handled by the `'error'` listener on the socket. We only\n // want to know if the close frame has been sent here.\n //\n if (err) return;\n\n this._closeFrameSent = true;\n\n if (\n this._closeFrameReceived ||\n this._receiver._writableState.errorEmitted\n ) {\n this._socket.end();\n }\n });\n\n setCloseTimer(this);\n }\n\n /**\n * Pause the socket.\n *\n * @public\n */\n pause() {\n if (\n this.readyState === WebSocket.CONNECTING ||\n this.readyState === WebSocket.CLOSED\n ) {\n return;\n }\n\n this._paused = true;\n this._socket.pause();\n }\n\n /**\n * Send a ping.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the ping is sent\n * @public\n */\n ping(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.ping(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a pong.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the pong is sent\n * @public\n */\n pong(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.pong(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Resume the socket.\n *\n * @public\n */\n resume() {\n if (\n this.readyState === WebSocket.CONNECTING ||\n this.readyState === WebSocket.CLOSED\n ) {\n return;\n }\n\n this._paused = false;\n if (!this._receiver._writableState.needDrain) this._socket.resume();\n }\n\n /**\n * Send a data message.\n *\n * @param {*} data The message to send\n * @param {Object} [options] Options object\n * @param {Boolean} [options.binary] Specifies whether `data` is binary or\n * text\n * @param {Boolean} [options.compress] Specifies whether or not to compress\n * `data`\n * @param {Boolean} [options.fin=true] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when data is written out\n * @public\n */\n send(data, options, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n const opts = {\n binary: typeof data !== 'string',\n mask: !this._isServer,\n compress: true,\n fin: true,\n ...options\n };\n\n if (!this._extensions[PerMessageDeflate.extensionName]) {\n opts.compress = false;\n }\n\n this._sender.send(data || EMPTY_BUFFER, opts, cb);\n }\n\n /**\n * Forcibly close the connection.\n *\n * @public\n */\n terminate() {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n abortHandshake(this, this._req, msg);\n return;\n }\n\n if (this._socket) {\n this._readyState = WebSocket.CLOSING;\n this._socket.destroy();\n }\n }\n}\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CONNECTING', {\n enumerable: true,\n value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CONNECTING', {\n enumerable: true,\n value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'OPEN', {\n enumerable: true,\n value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'OPEN', {\n enumerable: true,\n value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSING', {\n enumerable: true,\n value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSING', {\n enumerable: true,\n value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSED', {\n enumerable: true,\n value: readyStates.indexOf('CLOSED')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSED', {\n enumerable: true,\n value: readyStates.indexOf('CLOSED')\n});\n\n[\n 'binaryType',\n 'bufferedAmount',\n 'extensions',\n 'isPaused',\n 'protocol',\n 'readyState',\n 'url'\n].forEach((property) => {\n Object.defineProperty(WebSocket.prototype, property, { enumerable: true });\n});\n\n//\n// Add the `onopen`, `onerror`, `onclose`, and `onmessage` attributes.\n// See https://html.spec.whatwg.org/multipage/comms.html#the-websocket-interface\n//\n['open', 'error', 'close', 'message'].forEach((method) => {\n Object.defineProperty(WebSocket.prototype, `on${method}`, {\n enumerable: true,\n get() {\n for (const listener of this.listeners(method)) {\n if (listener[kForOnEventAttribute]) return listener[kListener];\n }\n\n return null;\n },\n set(handler) {\n for (const listener of this.listeners(method)) {\n if (listener[kForOnEventAttribute]) {\n this.removeListener(method, listener);\n break;\n }\n }\n\n if (typeof handler !== 'function') return;\n\n this.addEventListener(method, handler, {\n [kForOnEventAttribute]: true\n });\n }\n });\n});\n\nWebSocket.prototype.addEventListener = addEventListener;\nWebSocket.prototype.removeEventListener = removeEventListener;\n\nmodule.exports = WebSocket;\n\n/**\n * Initialize a WebSocket client.\n *\n * @param {WebSocket} websocket The client to initialize\n * @param {(String|URL)} address The URL to which to connect\n * @param {Array} protocols The subprotocols\n * @param {Object} [options] Connection options\n * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether any\n * of the `'message'`, `'ping'`, and `'pong'` events can be emitted multiple\n * times in the same tick\n * @param {Boolean} [options.autoPong=true] Specifies whether or not to\n * automatically send a pong in response to a ping\n * @param {Function} [options.finishRequest] A function which can be used to\n * customize the headers of each http request before it is sent\n * @param {Boolean} [options.followRedirects=false] Whether or not to follow\n * redirects\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Number} [options.handshakeTimeout] Timeout in milliseconds for the\n * handshake request\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Number} [options.maxRedirects=10] The maximum number of redirects\n * allowed\n * @param {String} [options.origin] Value of the `Origin` or\n * `Sec-WebSocket-Origin` header\n * @param {(Boolean|Object)} [options.perMessageDeflate=true] Enable/disable\n * permessage-deflate\n * @param {Number} [options.protocolVersion=13] Value of the\n * `Sec-WebSocket-Version` header\n * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n * not to skip UTF-8 validation for text and close messages\n * @private\n */\nfunction initAsClient(websocket, address, protocols, options) {\n const opts = {\n allowSynchronousEvents: true,\n autoPong: true,\n protocolVersion: protocolVersions[1],\n maxPayload: 100 * 1024 * 1024,\n skipUTF8Validation: false,\n perMessageDeflate: true,\n followRedirects: false,\n maxRedirects: 10,\n ...options,\n socketPath: undefined,\n hostname: undefined,\n protocol: undefined,\n timeout: undefined,\n method: 'GET',\n host: undefined,\n path: undefined,\n port: undefined\n };\n\n websocket._autoPong = opts.autoPong;\n\n if (!protocolVersions.includes(opts.protocolVersion)) {\n throw new RangeError(\n `Unsupported protocol version: ${opts.protocolVersion} ` +\n `(supported versions: ${protocolVersions.join(', ')})`\n );\n }\n\n let parsedUrl;\n\n if (address instanceof URL) {\n parsedUrl = address;\n } else {\n try {\n parsedUrl = new URL(address);\n } catch (e) {\n throw new SyntaxError(`Invalid URL: ${address}`);\n }\n }\n\n if (parsedUrl.protocol === 'http:') {\n parsedUrl.protocol = 'ws:';\n } else if (parsedUrl.protocol === 'https:') {\n parsedUrl.protocol = 'wss:';\n }\n\n websocket._url = parsedUrl.href;\n\n const isSecure = parsedUrl.protocol === 'wss:';\n const isIpcUrl = parsedUrl.protocol === 'ws+unix:';\n let invalidUrlMessage;\n\n if (parsedUrl.protocol !== 'ws:' && !isSecure && !isIpcUrl) {\n invalidUrlMessage =\n 'The URL\\'s protocol must be one of \"ws:\", \"wss:\", ' +\n '\"http:\", \"https:\", or \"ws+unix:\"';\n } else if (isIpcUrl && !parsedUrl.pathname) {\n invalidUrlMessage = \"The URL's pathname is empty\";\n } else if (parsedUrl.hash) {\n invalidUrlMessage = 'The URL contains a fragment identifier';\n }\n\n if (invalidUrlMessage) {\n const err = new SyntaxError(invalidUrlMessage);\n\n if (websocket._redirects === 0) {\n throw err;\n } else {\n emitErrorAndClose(websocket, err);\n return;\n }\n }\n\n const defaultPort = isSecure ? 443 : 80;\n const key = randomBytes(16).toString('base64');\n const request = isSecure ? https.request : http.request;\n const protocolSet = new Set();\n let perMessageDeflate;\n\n opts.createConnection =\n opts.createConnection || (isSecure ? tlsConnect : netConnect);\n opts.defaultPort = opts.defaultPort || defaultPort;\n opts.port = parsedUrl.port || defaultPort;\n opts.host = parsedUrl.hostname.startsWith('[')\n ? parsedUrl.hostname.slice(1, -1)\n : parsedUrl.hostname;\n opts.headers = {\n ...opts.headers,\n 'Sec-WebSocket-Version': opts.protocolVersion,\n 'Sec-WebSocket-Key': key,\n Connection: 'Upgrade',\n Upgrade: 'websocket'\n };\n opts.path = parsedUrl.pathname + parsedUrl.search;\n opts.timeout = opts.handshakeTimeout;\n\n if (opts.perMessageDeflate) {\n perMessageDeflate = new PerMessageDeflate(\n opts.perMessageDeflate !== true ? opts.perMessageDeflate : {},\n false,\n opts.maxPayload\n );\n opts.headers['Sec-WebSocket-Extensions'] = format({\n [PerMessageDeflate.extensionName]: perMessageDeflate.offer()\n });\n }\n if (protocols.length) {\n for (const protocol of protocols) {\n if (\n typeof protocol !== 'string' ||\n !subprotocolRegex.test(protocol) ||\n protocolSet.has(protocol)\n ) {\n throw new SyntaxError(\n 'An invalid or duplicated subprotocol was specified'\n );\n }\n\n protocolSet.add(protocol);\n }\n\n opts.headers['Sec-WebSocket-Protocol'] = protocols.join(',');\n }\n if (opts.origin) {\n if (opts.protocolVersion < 13) {\n opts.headers['Sec-WebSocket-Origin'] = opts.origin;\n } else {\n opts.headers.Origin = opts.origin;\n }\n }\n if (parsedUrl.username || parsedUrl.password) {\n opts.auth = `${parsedUrl.username}:${parsedUrl.password}`;\n }\n\n if (isIpcUrl) {\n const parts = opts.path.split(':');\n\n opts.socketPath = parts[0];\n opts.path = parts[1];\n }\n\n let req;\n\n if (opts.followRedirects) {\n if (websocket._redirects === 0) {\n websocket._originalIpc = isIpcUrl;\n websocket._originalSecure = isSecure;\n websocket._originalHostOrSocketPath = isIpcUrl\n ? opts.socketPath\n : parsedUrl.host;\n\n const headers = options && options.headers;\n\n //\n // Shallow copy the user provided options so that headers can be changed\n // without mutating the original object.\n //\n options = { ...options, headers: {} };\n\n if (headers) {\n for (const [key, value] of Object.entries(headers)) {\n options.headers[key.toLowerCase()] = value;\n }\n }\n } else if (websocket.listenerCount('redirect') === 0) {\n const isSameHost = isIpcUrl\n ? websocket._originalIpc\n ? opts.socketPath === websocket._originalHostOrSocketPath\n : false\n : websocket._originalIpc\n ? false\n : parsedUrl.host === websocket._originalHostOrSocketPath;\n\n if (!isSameHost || (websocket._originalSecure && !isSecure)) {\n //\n // Match curl 7.77.0 behavior and drop the following headers. These\n // headers are also dropped when following a redirect to a subdomain.\n //\n delete opts.headers.authorization;\n delete opts.headers.cookie;\n\n if (!isSameHost) delete opts.headers.host;\n\n opts.auth = undefined;\n }\n }\n\n //\n // Match curl 7.77.0 behavior and make the first `Authorization` header win.\n // If the `Authorization` header is set, then there is nothing to do as it\n // will take precedence.\n //\n if (opts.auth && !options.headers.authorization) {\n options.headers.authorization =\n 'Basic ' + Buffer.from(opts.auth).toString('base64');\n }\n\n req = websocket._req = request(opts);\n\n if (websocket._redirects) {\n //\n // Unlike what is done for the `'upgrade'` event, no early exit is\n // triggered here if the user calls `websocket.close()` or\n // `websocket.terminate()` from a listener of the `'redirect'` event. This\n // is because the user can also call `request.destroy()` with an error\n // before calling `websocket.close()` or `websocket.terminate()` and this\n // would result in an error being emitted on the `request` object with no\n // `'error'` event listeners attached.\n //\n websocket.emit('redirect', websocket.url, req);\n }\n } else {\n req = websocket._req = request(opts);\n }\n\n if (opts.timeout) {\n req.on('timeout', () => {\n abortHandshake(websocket, req, 'Opening handshake has timed out');\n });\n }\n\n req.on('error', (err) => {\n if (req === null || req[kAborted]) return;\n\n req = websocket._req = null;\n emitErrorAndClose(websocket, err);\n });\n\n req.on('response', (res) => {\n const location = res.headers.location;\n const statusCode = res.statusCode;\n\n if (\n location &&\n opts.followRedirects &&\n statusCode >= 300 &&\n statusCode < 400\n ) {\n if (++websocket._redirects > opts.maxRedirects) {\n abortHandshake(websocket, req, 'Maximum redirects exceeded');\n return;\n }\n\n req.abort();\n\n let addr;\n\n try {\n addr = new URL(location, address);\n } catch (e) {\n const err = new SyntaxError(`Invalid URL: ${location}`);\n emitErrorAndClose(websocket, err);\n return;\n }\n\n initAsClient(websocket, addr, protocols, options);\n } else if (!websocket.emit('unexpected-response', req, res)) {\n abortHandshake(\n websocket,\n req,\n `Unexpected server response: ${res.statusCode}`\n );\n }\n });\n\n req.on('upgrade', (res, socket, head) => {\n websocket.emit('upgrade', res);\n\n //\n // The user may have closed the connection from a listener of the\n // `'upgrade'` event.\n //\n if (websocket.readyState !== WebSocket.CONNECTING) return;\n\n req = websocket._req = null;\n\n const upgrade = res.headers.upgrade;\n\n if (upgrade === undefined || upgrade.toLowerCase() !== 'websocket') {\n abortHandshake(websocket, socket, 'Invalid Upgrade header');\n return;\n }\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n if (res.headers['sec-websocket-accept'] !== digest) {\n abortHandshake(websocket, socket, 'Invalid Sec-WebSocket-Accept header');\n return;\n }\n\n const serverProt = res.headers['sec-websocket-protocol'];\n let protError;\n\n if (serverProt !== undefined) {\n if (!protocolSet.size) {\n protError = 'Server sent a subprotocol but none was requested';\n } else if (!protocolSet.has(serverProt)) {\n protError = 'Server sent an invalid subprotocol';\n }\n } else if (protocolSet.size) {\n protError = 'Server sent no subprotocol';\n }\n\n if (protError) {\n abortHandshake(websocket, socket, protError);\n return;\n }\n\n if (serverProt) websocket._protocol = serverProt;\n\n const secWebSocketExtensions = res.headers['sec-websocket-extensions'];\n\n if (secWebSocketExtensions !== undefined) {\n if (!perMessageDeflate) {\n const message =\n 'Server sent a Sec-WebSocket-Extensions header but no extension ' +\n 'was requested';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n let extensions;\n\n try {\n extensions = parse(secWebSocketExtensions);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Extensions header';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n const extensionNames = Object.keys(extensions);\n\n if (\n extensionNames.length !== 1 ||\n extensionNames[0] !== PerMessageDeflate.extensionName\n ) {\n const message = 'Server indicated an extension that was not requested';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n try {\n perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Extensions header';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n websocket._extensions[PerMessageDeflate.extensionName] =\n perMessageDeflate;\n }\n\n websocket.setSocket(socket, head, {\n allowSynchronousEvents: opts.allowSynchronousEvents,\n generateMask: opts.generateMask,\n maxPayload: opts.maxPayload,\n skipUTF8Validation: opts.skipUTF8Validation\n });\n });\n\n if (opts.finishRequest) {\n opts.finishRequest(req, websocket);\n } else {\n req.end();\n }\n}\n\n/**\n * Emit the `'error'` and `'close'` events.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {Error} The error to emit\n * @private\n */\nfunction emitErrorAndClose(websocket, err) {\n websocket._readyState = WebSocket.CLOSING;\n //\n // The following assignment is practically useless and is done only for\n // consistency.\n //\n websocket._errorEmitted = true;\n websocket.emit('error', err);\n websocket.emitClose();\n}\n\n/**\n * Create a `net.Socket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {net.Socket} The newly created socket used to start the connection\n * @private\n */\nfunction netConnect(options) {\n options.path = options.socketPath;\n return net.connect(options);\n}\n\n/**\n * Create a `tls.TLSSocket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {tls.TLSSocket} The newly created socket used to start the connection\n * @private\n */\nfunction tlsConnect(options) {\n options.path = undefined;\n\n if (!options.servername && options.servername !== '') {\n options.servername = net.isIP(options.host) ? '' : options.host;\n }\n\n return tls.connect(options);\n}\n\n/**\n * Abort the handshake and emit an error.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {(http.ClientRequest|net.Socket|tls.Socket)} stream The request to\n * abort or the socket to destroy\n * @param {String} message The error message\n * @private\n */\nfunction abortHandshake(websocket, stream, message) {\n websocket._readyState = WebSocket.CLOSING;\n\n const err = new Error(message);\n Error.captureStackTrace(err, abortHandshake);\n\n if (stream.setHeader) {\n stream[kAborted] = true;\n stream.abort();\n\n if (stream.socket && !stream.socket.destroyed) {\n //\n // On Node.js >= 14.3.0 `request.abort()` does not destroy the socket if\n // called after the request completed. See\n // https://github.com/websockets/ws/issues/1869.\n //\n stream.socket.destroy();\n }\n\n process.nextTick(emitErrorAndClose, websocket, err);\n } else {\n stream.destroy(err);\n stream.once('error', websocket.emit.bind(websocket, 'error'));\n stream.once('close', websocket.emitClose.bind(websocket));\n }\n}\n\n/**\n * Handle cases where the `ping()`, `pong()`, or `send()` methods are called\n * when the `readyState` attribute is `CLOSING` or `CLOSED`.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {*} [data] The data to send\n * @param {Function} [cb] Callback\n * @private\n */\nfunction sendAfterClose(websocket, data, cb) {\n if (data) {\n const length = isBlob(data) ? data.size : toBuffer(data).length;\n\n //\n // The `_bufferedAmount` property is used only when the peer is a client and\n // the opening handshake fails. Under these circumstances, in fact, the\n // `setSocket()` method is not called, so the `_socket` and `_sender`\n // properties are set to `null`.\n //\n if (websocket._socket) websocket._sender._bufferedBytes += length;\n else websocket._bufferedAmount += length;\n }\n\n if (cb) {\n const err = new Error(\n `WebSocket is not open: readyState ${websocket.readyState} ` +\n `(${readyStates[websocket.readyState]})`\n );\n process.nextTick(cb, err);\n }\n}\n\n/**\n * The listener of the `Receiver` `'conclude'` event.\n *\n * @param {Number} code The status code\n * @param {Buffer} reason The reason for closing\n * @private\n */\nfunction receiverOnConclude(code, reason) {\n const websocket = this[kWebSocket];\n\n websocket._closeFrameReceived = true;\n websocket._closeMessage = reason;\n websocket._closeCode = code;\n\n if (websocket._socket[kWebSocket] === undefined) return;\n\n websocket._socket.removeListener('data', socketOnData);\n process.nextTick(resume, websocket._socket);\n\n if (code === 1005) websocket.close();\n else websocket.close(code, reason);\n}\n\n/**\n * The listener of the `Receiver` `'drain'` event.\n *\n * @private\n */\nfunction receiverOnDrain() {\n const websocket = this[kWebSocket];\n\n if (!websocket.isPaused) websocket._socket.resume();\n}\n\n/**\n * The listener of the `Receiver` `'error'` event.\n *\n * @param {(RangeError|Error)} err The emitted error\n * @private\n */\nfunction receiverOnError(err) {\n const websocket = this[kWebSocket];\n\n if (websocket._socket[kWebSocket] !== undefined) {\n websocket._socket.removeListener('data', socketOnData);\n\n //\n // On Node.js < 14.0.0 the `'error'` event is emitted synchronously. See\n // https://github.com/websockets/ws/issues/1940.\n //\n process.nextTick(resume, websocket._socket);\n\n websocket.close(err[kStatusCode]);\n }\n\n if (!websocket._errorEmitted) {\n websocket._errorEmitted = true;\n websocket.emit('error', err);\n }\n}\n\n/**\n * The listener of the `Receiver` `'finish'` event.\n *\n * @private\n */\nfunction receiverOnFinish() {\n this[kWebSocket].emitClose();\n}\n\n/**\n * The listener of the `Receiver` `'message'` event.\n *\n * @param {Buffer|ArrayBuffer|Buffer[])} data The message\n * @param {Boolean} isBinary Specifies whether the message is binary or not\n * @private\n */\nfunction receiverOnMessage(data, isBinary) {\n this[kWebSocket].emit('message', data, isBinary);\n}\n\n/**\n * The listener of the `Receiver` `'ping'` event.\n *\n * @param {Buffer} data The data included in the ping frame\n * @private\n */\nfunction receiverOnPing(data) {\n const websocket = this[kWebSocket];\n\n if (websocket._autoPong) websocket.pong(data, !this._isServer, NOOP);\n websocket.emit('ping', data);\n}\n\n/**\n * The listener of the `Receiver` `'pong'` event.\n *\n * @param {Buffer} data The data included in the pong frame\n * @private\n */\nfunction receiverOnPong(data) {\n this[kWebSocket].emit('pong', data);\n}\n\n/**\n * Resume a readable stream\n *\n * @param {Readable} stream The readable stream\n * @private\n */\nfunction resume(stream) {\n stream.resume();\n}\n\n/**\n * The `Sender` error event handler.\n *\n * @param {Error} The error\n * @private\n */\nfunction senderOnError(err) {\n const websocket = this[kWebSocket];\n\n if (websocket.readyState === WebSocket.CLOSED) return;\n if (websocket.readyState === WebSocket.OPEN) {\n websocket._readyState = WebSocket.CLOSING;\n setCloseTimer(websocket);\n }\n\n //\n // `socket.end()` is used instead of `socket.destroy()` to allow the other\n // peer to finish sending queued data. There is no need to set a timer here\n // because `CLOSING` means that it is already set or not needed.\n //\n this._socket.end();\n\n if (!websocket._errorEmitted) {\n websocket._errorEmitted = true;\n websocket.emit('error', err);\n }\n}\n\n/**\n * Set a timer to destroy the underlying raw socket of a WebSocket.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @private\n */\nfunction setCloseTimer(websocket) {\n websocket._closeTimer = setTimeout(\n websocket._socket.destroy.bind(websocket._socket),\n closeTimeout\n );\n}\n\n/**\n * The listener of the socket `'close'` event.\n *\n * @private\n */\nfunction socketOnClose() {\n const websocket = this[kWebSocket];\n\n this.removeListener('close', socketOnClose);\n this.removeListener('data', socketOnData);\n this.removeListener('end', socketOnEnd);\n\n websocket._readyState = WebSocket.CLOSING;\n\n let chunk;\n\n //\n // The close frame might not have been received or the `'end'` event emitted,\n // for example, if the socket was destroyed due to an error. Ensure that the\n // `receiver` stream is closed after writing any remaining buffered data to\n // it. If the readable side of the socket is in flowing mode then there is no\n // buffered data as everything has been already written and `readable.read()`\n // will return `null`. If instead, the socket is paused, any possible buffered\n // data will be read as a single chunk.\n //\n if (\n !this._readableState.endEmitted &&\n !websocket._closeFrameReceived &&\n !websocket._receiver._writableState.errorEmitted &&\n (chunk = websocket._socket.read()) !== null\n ) {\n websocket._receiver.write(chunk);\n }\n\n websocket._receiver.end();\n\n this[kWebSocket] = undefined;\n\n clearTimeout(websocket._closeTimer);\n\n if (\n websocket._receiver._writableState.finished ||\n websocket._receiver._writableState.errorEmitted\n ) {\n websocket.emitClose();\n } else {\n websocket._receiver.on('error', receiverOnFinish);\n websocket._receiver.on('finish', receiverOnFinish);\n }\n}\n\n/**\n * The listener of the socket `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction socketOnData(chunk) {\n if (!this[kWebSocket]._receiver.write(chunk)) {\n this.pause();\n }\n}\n\n/**\n * The listener of the socket `'end'` event.\n *\n * @private\n */\nfunction socketOnEnd() {\n const websocket = this[kWebSocket];\n\n websocket._readyState = WebSocket.CLOSING;\n websocket._receiver.end();\n this.end();\n}\n\n/**\n * The listener of the socket `'error'` event.\n *\n * @private\n */\nfunction socketOnError() {\n const websocket = this[kWebSocket];\n\n this.removeListener('error', socketOnError);\n this.on('error', NOOP);\n\n if (websocket) {\n websocket._readyState = WebSocket.CLOSING;\n this.destroy();\n }\n}\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^WebSocket$\" }] */\n'use strict';\n\nconst WebSocket = require('./websocket');\nconst { Duplex } = require('stream');\n\n/**\n * Emits the `'close'` event on a stream.\n *\n * @param {Duplex} stream The stream.\n * @private\n */\nfunction emitClose(stream) {\n stream.emit('close');\n}\n\n/**\n * The listener of the `'end'` event.\n *\n * @private\n */\nfunction duplexOnEnd() {\n if (!this.destroyed && this._writableState.finished) {\n this.destroy();\n }\n}\n\n/**\n * The listener of the `'error'` event.\n *\n * @param {Error} err The error\n * @private\n */\nfunction duplexOnError(err) {\n this.removeListener('error', duplexOnError);\n this.destroy();\n if (this.listenerCount('error') === 0) {\n // Do not suppress the throwing behavior.\n this.emit('error', err);\n }\n}\n\n/**\n * Wraps a `WebSocket` in a duplex stream.\n *\n * @param {WebSocket} ws The `WebSocket` to wrap\n * @param {Object} [options] The options for the `Duplex` constructor\n * @return {Duplex} The duplex stream\n * @public\n */\nfunction createWebSocketStream(ws, options) {\n let terminateOnDestroy = true;\n\n const duplex = new Duplex({\n ...options,\n autoDestroy: false,\n emitClose: false,\n objectMode: false,\n writableObjectMode: false\n });\n\n ws.on('message', function message(msg, isBinary) {\n const data =\n !isBinary && duplex._readableState.objectMode ? msg.toString() : msg;\n\n if (!duplex.push(data)) ws.pause();\n });\n\n ws.once('error', function error(err) {\n if (duplex.destroyed) return;\n\n // Prevent `ws.terminate()` from being called by `duplex._destroy()`.\n //\n // - If the `'error'` event is emitted before the `'open'` event, then\n // `ws.terminate()` is a noop as no socket is assigned.\n // - Otherwise, the error is re-emitted by the listener of the `'error'`\n // event of the `Receiver` object. The listener already closes the\n // connection by calling `ws.close()`. This allows a close frame to be\n // sent to the other peer. If `ws.terminate()` is called right after this,\n // then the close frame might not be sent.\n terminateOnDestroy = false;\n duplex.destroy(err);\n });\n\n ws.once('close', function close() {\n if (duplex.destroyed) return;\n\n duplex.push(null);\n });\n\n duplex._destroy = function (err, callback) {\n if (ws.readyState === ws.CLOSED) {\n callback(err);\n process.nextTick(emitClose, duplex);\n return;\n }\n\n let called = false;\n\n ws.once('error', function error(err) {\n called = true;\n callback(err);\n });\n\n ws.once('close', function close() {\n if (!called) callback(err);\n process.nextTick(emitClose, duplex);\n });\n\n if (terminateOnDestroy) ws.terminate();\n };\n\n duplex._final = function (callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._final(callback);\n });\n return;\n }\n\n // If the value of the `_socket` property is `null` it means that `ws` is a\n // client websocket and the handshake failed. In fact, when this happens, a\n // socket is never assigned to the websocket. Wait for the `'error'` event\n // that will be emitted by the websocket.\n if (ws._socket === null) return;\n\n if (ws._socket._writableState.finished) {\n callback();\n if (duplex._readableState.endEmitted) duplex.destroy();\n } else {\n ws._socket.once('finish', function finish() {\n // `duplex` is not destroyed here because the `'end'` event will be\n // emitted on `duplex` after this `'finish'` event. The EOF signaling\n // `null` chunk is, in fact, pushed when the websocket emits `'close'`.\n callback();\n });\n ws.close();\n }\n };\n\n duplex._read = function () {\n if (ws.isPaused) ws.resume();\n };\n\n duplex._write = function (chunk, encoding, callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._write(chunk, encoding, callback);\n });\n return;\n }\n\n ws.send(chunk, callback);\n };\n\n duplex.on('end', duplexOnEnd);\n duplex.on('error', duplexOnError);\n return duplex;\n}\n\nmodule.exports = createWebSocketStream;\n","'use strict';\n\nconst { tokenChars } = require('./validation');\n\n/**\n * Parses the `Sec-WebSocket-Protocol` header into a set of subprotocol names.\n *\n * @param {String} header The field value of the header\n * @return {Set} The subprotocol names\n * @public\n */\nfunction parse(header) {\n const protocols = new Set();\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (i; i < header.length; i++) {\n const code = header.charCodeAt(i);\n\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (\n i !== 0 &&\n (code === 0x20 /* ' ' */ || code === 0x09) /* '\\t' */\n ) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x2c /* ',' */) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n\n const protocol = header.slice(start, end);\n\n if (protocols.has(protocol)) {\n throw new SyntaxError(`The \"${protocol}\" subprotocol is duplicated`);\n }\n\n protocols.add(protocol);\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n }\n\n if (start === -1 || end !== -1) {\n throw new SyntaxError('Unexpected end of input');\n }\n\n const protocol = header.slice(start, i);\n\n if (protocols.has(protocol)) {\n throw new SyntaxError(`The \"${protocol}\" subprotocol is duplicated`);\n }\n\n protocols.add(protocol);\n return protocols;\n}\n\nmodule.exports = { parse };\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Duplex$\", \"caughtErrors\": \"none\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst http = require('http');\nconst { Duplex } = require('stream');\nconst { createHash } = require('crypto');\n\nconst extension = require('./extension');\nconst PerMessageDeflate = require('./permessage-deflate');\nconst subprotocol = require('./subprotocol');\nconst WebSocket = require('./websocket');\nconst { GUID, kWebSocket } = require('./constants');\n\nconst keyRegex = /^[+/0-9A-Za-z]{22}==$/;\n\nconst RUNNING = 0;\nconst CLOSING = 1;\nconst CLOSED = 2;\n\n/**\n * Class representing a WebSocket server.\n *\n * @extends EventEmitter\n */\nclass WebSocketServer extends EventEmitter {\n /**\n * Create a `WebSocketServer` instance.\n *\n * @param {Object} options Configuration options\n * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether\n * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted\n * multiple times in the same tick\n * @param {Boolean} [options.autoPong=true] Specifies whether or not to\n * automatically send a pong in response to a ping\n * @param {Number} [options.backlog=511] The maximum length of the queue of\n * pending connections\n * @param {Boolean} [options.clientTracking=true] Specifies whether or not to\n * track clients\n * @param {Function} [options.handleProtocols] A hook to handle protocols\n * @param {String} [options.host] The hostname where to bind the server\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.noServer=false] Enable no server mode\n * @param {String} [options.path] Accept only connections matching this path\n * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable\n * permessage-deflate\n * @param {Number} [options.port] The port where to bind the server\n * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S\n * server to use\n * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n * not to skip UTF-8 validation for text and close messages\n * @param {Function} [options.verifyClient] A hook to reject connections\n * @param {Function} [options.WebSocket=WebSocket] Specifies the `WebSocket`\n * class to use. It must be the `WebSocket` class or class that extends it\n * @param {Function} [callback] A listener for the `listening` event\n */\n constructor(options, callback) {\n super();\n\n options = {\n allowSynchronousEvents: true,\n autoPong: true,\n maxPayload: 100 * 1024 * 1024,\n skipUTF8Validation: false,\n perMessageDeflate: false,\n handleProtocols: null,\n clientTracking: true,\n verifyClient: null,\n noServer: false,\n backlog: null, // use default (511 as implemented in net.js)\n server: null,\n host: null,\n path: null,\n port: null,\n WebSocket,\n ...options\n };\n\n if (\n (options.port == null && !options.server && !options.noServer) ||\n (options.port != null && (options.server || options.noServer)) ||\n (options.server && options.noServer)\n ) {\n throw new TypeError(\n 'One and only one of the \"port\", \"server\", or \"noServer\" options ' +\n 'must be specified'\n );\n }\n\n if (options.port != null) {\n this._server = http.createServer((req, res) => {\n const body = http.STATUS_CODES[426];\n\n res.writeHead(426, {\n 'Content-Length': body.length,\n 'Content-Type': 'text/plain'\n });\n res.end(body);\n });\n this._server.listen(\n options.port,\n options.host,\n options.backlog,\n callback\n );\n } else if (options.server) {\n this._server = options.server;\n }\n\n if (this._server) {\n const emitConnection = this.emit.bind(this, 'connection');\n\n this._removeListeners = addListeners(this._server, {\n listening: this.emit.bind(this, 'listening'),\n error: this.emit.bind(this, 'error'),\n upgrade: (req, socket, head) => {\n this.handleUpgrade(req, socket, head, emitConnection);\n }\n });\n }\n\n if (options.perMessageDeflate === true) options.perMessageDeflate = {};\n if (options.clientTracking) {\n this.clients = new Set();\n this._shouldEmitClose = false;\n }\n\n this.options = options;\n this._state = RUNNING;\n }\n\n /**\n * Returns the bound address, the address family name, and port of the server\n * as reported by the operating system if listening on an IP socket.\n * If the server is listening on a pipe or UNIX domain socket, the name is\n * returned as a string.\n *\n * @return {(Object|String|null)} The address of the server\n * @public\n */\n address() {\n if (this.options.noServer) {\n throw new Error('The server is operating in \"noServer\" mode');\n }\n\n if (!this._server) return null;\n return this._server.address();\n }\n\n /**\n * Stop the server from accepting new connections and emit the `'close'` event\n * when all existing connections are closed.\n *\n * @param {Function} [cb] A one-time listener for the `'close'` event\n * @public\n */\n close(cb) {\n if (this._state === CLOSED) {\n if (cb) {\n this.once('close', () => {\n cb(new Error('The server is not running'));\n });\n }\n\n process.nextTick(emitClose, this);\n return;\n }\n\n if (cb) this.once('close', cb);\n\n if (this._state === CLOSING) return;\n this._state = CLOSING;\n\n if (this.options.noServer || this.options.server) {\n if (this._server) {\n this._removeListeners();\n this._removeListeners = this._server = null;\n }\n\n if (this.clients) {\n if (!this.clients.size) {\n process.nextTick(emitClose, this);\n } else {\n this._shouldEmitClose = true;\n }\n } else {\n process.nextTick(emitClose, this);\n }\n } else {\n const server = this._server;\n\n this._removeListeners();\n this._removeListeners = this._server = null;\n\n //\n // The HTTP/S server was created internally. Close it, and rely on its\n // `'close'` event.\n //\n server.close(() => {\n emitClose(this);\n });\n }\n }\n\n /**\n * See if a given request should be handled by this server instance.\n *\n * @param {http.IncomingMessage} req Request object to inspect\n * @return {Boolean} `true` if the request is valid, else `false`\n * @public\n */\n shouldHandle(req) {\n if (this.options.path) {\n const index = req.url.indexOf('?');\n const pathname = index !== -1 ? req.url.slice(0, index) : req.url;\n\n if (pathname !== this.options.path) return false;\n }\n\n return true;\n }\n\n /**\n * Handle a HTTP Upgrade request.\n *\n * @param {http.IncomingMessage} req The request object\n * @param {Duplex} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @public\n */\n handleUpgrade(req, socket, head, cb) {\n socket.on('error', socketOnError);\n\n const key = req.headers['sec-websocket-key'];\n const upgrade = req.headers.upgrade;\n const version = +req.headers['sec-websocket-version'];\n\n if (req.method !== 'GET') {\n const message = 'Invalid HTTP method';\n abortHandshakeOrEmitwsClientError(this, req, socket, 405, message);\n return;\n }\n\n if (upgrade === undefined || upgrade.toLowerCase() !== 'websocket') {\n const message = 'Invalid Upgrade header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n return;\n }\n\n if (key === undefined || !keyRegex.test(key)) {\n const message = 'Missing or invalid Sec-WebSocket-Key header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n return;\n }\n\n if (version !== 8 && version !== 13) {\n const message = 'Missing or invalid Sec-WebSocket-Version header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n return;\n }\n\n if (!this.shouldHandle(req)) {\n abortHandshake(socket, 400);\n return;\n }\n\n const secWebSocketProtocol = req.headers['sec-websocket-protocol'];\n let protocols = new Set();\n\n if (secWebSocketProtocol !== undefined) {\n try {\n protocols = subprotocol.parse(secWebSocketProtocol);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Protocol header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n return;\n }\n }\n\n const secWebSocketExtensions = req.headers['sec-websocket-extensions'];\n const extensions = {};\n\n if (\n this.options.perMessageDeflate &&\n secWebSocketExtensions !== undefined\n ) {\n const perMessageDeflate = new PerMessageDeflate(\n this.options.perMessageDeflate,\n true,\n this.options.maxPayload\n );\n\n try {\n const offers = extension.parse(secWebSocketExtensions);\n\n if (offers[PerMessageDeflate.extensionName]) {\n perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);\n extensions[PerMessageDeflate.extensionName] = perMessageDeflate;\n }\n } catch (err) {\n const message =\n 'Invalid or unacceptable Sec-WebSocket-Extensions header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n return;\n }\n }\n\n //\n // Optionally call external client verification handler.\n //\n if (this.options.verifyClient) {\n const info = {\n origin:\n req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`],\n secure: !!(req.socket.authorized || req.socket.encrypted),\n req\n };\n\n if (this.options.verifyClient.length === 2) {\n this.options.verifyClient(info, (verified, code, message, headers) => {\n if (!verified) {\n return abortHandshake(socket, code || 401, message, headers);\n }\n\n this.completeUpgrade(\n extensions,\n key,\n protocols,\n req,\n socket,\n head,\n cb\n );\n });\n return;\n }\n\n if (!this.options.verifyClient(info)) return abortHandshake(socket, 401);\n }\n\n this.completeUpgrade(extensions, key, protocols, req, socket, head, cb);\n }\n\n /**\n * Upgrade the connection to WebSocket.\n *\n * @param {Object} extensions The accepted extensions\n * @param {String} key The value of the `Sec-WebSocket-Key` header\n * @param {Set} protocols The subprotocols\n * @param {http.IncomingMessage} req The request object\n * @param {Duplex} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @throws {Error} If called more than once with the same socket\n * @private\n */\n completeUpgrade(extensions, key, protocols, req, socket, head, cb) {\n //\n // Destroy the socket if the client has already sent a FIN packet.\n //\n if (!socket.readable || !socket.writable) return socket.destroy();\n\n if (socket[kWebSocket]) {\n throw new Error(\n 'server.handleUpgrade() was called more than once with the same ' +\n 'socket, possibly due to a misconfiguration'\n );\n }\n\n if (this._state > RUNNING) return abortHandshake(socket, 503);\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n const headers = [\n 'HTTP/1.1 101 Switching Protocols',\n 'Upgrade: websocket',\n 'Connection: Upgrade',\n `Sec-WebSocket-Accept: ${digest}`\n ];\n\n const ws = new this.options.WebSocket(null, undefined, this.options);\n\n if (protocols.size) {\n //\n // Optionally call external protocol selection handler.\n //\n const protocol = this.options.handleProtocols\n ? this.options.handleProtocols(protocols, req)\n : protocols.values().next().value;\n\n if (protocol) {\n headers.push(`Sec-WebSocket-Protocol: ${protocol}`);\n ws._protocol = protocol;\n }\n }\n\n if (extensions[PerMessageDeflate.extensionName]) {\n const params = extensions[PerMessageDeflate.extensionName].params;\n const value = extension.format({\n [PerMessageDeflate.extensionName]: [params]\n });\n headers.push(`Sec-WebSocket-Extensions: ${value}`);\n ws._extensions = extensions;\n }\n\n //\n // Allow external modification/inspection of handshake headers.\n //\n this.emit('headers', headers, req);\n\n socket.write(headers.concat('\\r\\n').join('\\r\\n'));\n socket.removeListener('error', socketOnError);\n\n ws.setSocket(socket, head, {\n allowSynchronousEvents: this.options.allowSynchronousEvents,\n maxPayload: this.options.maxPayload,\n skipUTF8Validation: this.options.skipUTF8Validation\n });\n\n if (this.clients) {\n this.clients.add(ws);\n ws.on('close', () => {\n this.clients.delete(ws);\n\n if (this._shouldEmitClose && !this.clients.size) {\n process.nextTick(emitClose, this);\n }\n });\n }\n\n cb(ws, req);\n }\n}\n\nmodule.exports = WebSocketServer;\n\n/**\n * Add event listeners on an `EventEmitter` using a map of \n * pairs.\n *\n * @param {EventEmitter} server The event emitter\n * @param {Object.} map The listeners to add\n * @return {Function} A function that will remove the added listeners when\n * called\n * @private\n */\nfunction addListeners(server, map) {\n for (const event of Object.keys(map)) server.on(event, map[event]);\n\n return function removeListeners() {\n for (const event of Object.keys(map)) {\n server.removeListener(event, map[event]);\n }\n };\n}\n\n/**\n * Emit a `'close'` event on an `EventEmitter`.\n *\n * @param {EventEmitter} server The event emitter\n * @private\n */\nfunction emitClose(server) {\n server._state = CLOSED;\n server.emit('close');\n}\n\n/**\n * Handle socket errors.\n *\n * @private\n */\nfunction socketOnError() {\n this.destroy();\n}\n\n/**\n * Close the connection when preconditions are not fulfilled.\n *\n * @param {Duplex} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} [message] The HTTP response body\n * @param {Object} [headers] Additional HTTP response headers\n * @private\n */\nfunction abortHandshake(socket, code, message, headers) {\n //\n // The socket is writable unless the user destroyed or ended it before calling\n // `server.handleUpgrade()` or in the `verifyClient` function, which is a user\n // error. Handling this does not make much sense as the worst that can happen\n // is that some of the data written by the user might be discarded due to the\n // call to `socket.end()` below, which triggers an `'error'` event that in\n // turn causes the socket to be destroyed.\n //\n message = message || http.STATUS_CODES[code];\n headers = {\n Connection: 'close',\n 'Content-Type': 'text/html',\n 'Content-Length': Buffer.byteLength(message),\n ...headers\n };\n\n socket.once('finish', socket.destroy);\n\n socket.end(\n `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\\r\\n` +\n Object.keys(headers)\n .map((h) => `${h}: ${headers[h]}`)\n .join('\\r\\n') +\n '\\r\\n\\r\\n' +\n message\n );\n}\n\n/**\n * Emit a `'wsClientError'` event on a `WebSocketServer` if there is at least\n * one listener for it, otherwise call `abortHandshake()`.\n *\n * @param {WebSocketServer} server The WebSocket server\n * @param {http.IncomingMessage} req The request object\n * @param {Duplex} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} message The HTTP response body\n * @private\n */\nfunction abortHandshakeOrEmitwsClientError(server, req, socket, code, message) {\n if (server.listenerCount('wsClientError')) {\n const err = new Error(message);\n Error.captureStackTrace(err, abortHandshakeOrEmitwsClientError);\n\n server.emit('wsClientError', err, socket, req);\n } else {\n abortHandshake(socket, code, message);\n }\n}\n","'use strict';\n\nconst WebSocket = require('./lib/websocket');\n\nWebSocket.createWebSocketStream = require('./lib/stream');\nWebSocket.Server = require('./lib/websocket-server');\nWebSocket.Receiver = require('./lib/receiver');\nWebSocket.Sender = require('./lib/sender');\n\nWebSocket.WebSocket = WebSocket;\nWebSocket.WebSocketServer = WebSocket.Server;\n\nmodule.exports = WebSocket;\n","\"use strict\";\n\nmodule.exports = require('ws');","'use strict';\n\nmodule.exports = {\n DEFAULT_INITIAL_SIZE: (8 * 1024),\n DEFAULT_INCREMENT_AMOUNT: (8 * 1024),\n DEFAULT_FREQUENCY: 1,\n DEFAULT_CHUNK_SIZE: 1024\n};\n","'use strict';\n\nvar stream = require('stream');\nvar constants = require('./constants');\nvar util = require('util');\n\nvar ReadableStreamBuffer = module.exports = function(opts) {\n var that = this;\n opts = opts || {};\n\n stream.Readable.call(this, opts);\n\n this.stopped = false;\n\n var frequency = opts.hasOwnProperty('frequency') ? opts.frequency : constants.DEFAULT_FREQUENCY;\n var chunkSize = opts.chunkSize || constants.DEFAULT_CHUNK_SIZE;\n var initialSize = opts.initialSize || constants.DEFAULT_INITIAL_SIZE;\n var incrementAmount = opts.incrementAmount || constants.DEFAULT_INCREMENT_AMOUNT;\n\n var size = 0;\n var buffer = new Buffer(initialSize);\n var allowPush = false;\n\n var sendData = function() {\n var amount = Math.min(chunkSize, size);\n var sendMore = false;\n\n if (amount > 0) {\n var chunk = null;\n chunk = new Buffer(amount);\n buffer.copy(chunk, 0, 0, amount);\n\n sendMore = that.push(chunk) !== false;\n allowPush = sendMore;\n\n buffer.copy(buffer, 0, amount, size);\n size -= amount;\n }\n\n if(size === 0 && that.stopped) {\n that.push(null);\n }\n\n if (sendMore) {\n sendData.timeout = setTimeout(sendData, frequency);\n }\n else {\n sendData.timeout = null;\n }\n };\n\n this.stop = function() {\n if (this.stopped) {\n throw new Error('stop() called on already stopped ReadableStreamBuffer');\n }\n this.stopped = true;\n\n if (size === 0) {\n this.push(null);\n }\n };\n\n this.size = function() {\n return size;\n };\n\n this.maxSize = function() {\n return buffer.length;\n };\n\n var increaseBufferIfNecessary = function(incomingDataSize) {\n if((buffer.length - size) < incomingDataSize) {\n var factor = Math.ceil((incomingDataSize - (buffer.length - size)) / incrementAmount);\n\n var newBuffer = new Buffer(buffer.length + (incrementAmount * factor));\n buffer.copy(newBuffer, 0, 0, size);\n buffer = newBuffer;\n }\n };\n\n var kickSendDataTask = function () {\n if (!sendData.timeout && allowPush) {\n sendData.timeout = setTimeout(sendData, frequency);\n }\n }\n\n this.put = function(data, encoding) {\n if (that.stopped) {\n throw new Error('Tried to write data to a stopped ReadableStreamBuffer');\n }\n\n if(Buffer.isBuffer(data)) {\n increaseBufferIfNecessary(data.length);\n data.copy(buffer, size, 0);\n size += data.length;\n }\n else {\n data = data + '';\n var dataSizeInBytes = Buffer.byteLength(data);\n increaseBufferIfNecessary(dataSizeInBytes);\n buffer.write(data, size, encoding || 'utf8');\n size += dataSizeInBytes;\n }\n\n kickSendDataTask();\n };\n\n this._read = function() {\n allowPush = true;\n kickSendDataTask();\n };\n};\n\nutil.inherits(ReadableStreamBuffer, stream.Readable);\n","'use strict';\n\nvar util = require('util');\nvar stream = require('stream');\nvar constants = require('./constants');\n\nvar WritableStreamBuffer = module.exports = function(opts) {\n opts = opts || {};\n opts.decodeStrings = true;\n\n stream.Writable.call(this, opts);\n\n var initialSize = opts.initialSize || constants.DEFAULT_INITIAL_SIZE;\n var incrementAmount = opts.incrementAmount || constants.DEFAULT_INCREMENT_AMOUNT;\n\n var buffer = new Buffer(initialSize);\n var size = 0;\n\n this.size = function() {\n return size;\n };\n\n this.maxSize = function() {\n return buffer.length;\n };\n\n this.getContents = function(length) {\n if(!size) return false;\n\n var data = new Buffer(Math.min(length || size, size));\n buffer.copy(data, 0, 0, data.length);\n\n if(data.length < size)\n buffer.copy(buffer, 0, data.length);\n\n size -= data.length;\n\n return data;\n };\n\n this.getContentsAsString = function(encoding, length) {\n if(!size) return false;\n\n var data = buffer.toString(encoding || 'utf8', 0, Math.min(length || size, size));\n var dataLength = Buffer.byteLength(data);\n\n if(dataLength < size)\n buffer.copy(buffer, 0, dataLength);\n\n size -= dataLength;\n return data;\n };\n\n var increaseBufferIfNecessary = function(incomingDataSize) {\n if((buffer.length - size) < incomingDataSize) {\n var factor = Math.ceil((incomingDataSize - (buffer.length - size)) / incrementAmount);\n\n var newBuffer = new Buffer(buffer.length + (incrementAmount * factor));\n buffer.copy(newBuffer, 0, 0, size);\n buffer = newBuffer;\n }\n };\n\n this._write = function(chunk, encoding, callback) {\n increaseBufferIfNecessary(chunk.length);\n chunk.copy(buffer, size, 0);\n size += chunk.length;\n callback();\n };\n};\n\nutil.inherits(WritableStreamBuffer, stream.Writable);\n","'use strict';\n\nmodule.exports = require('./constants');\nmodule.exports.ReadableStreamBuffer = require('./readable_streambuffer');\nmodule.exports.WritableStreamBuffer = require('./writable_streambuffer');\n","module.exports = class FixedFIFO {\n constructor (hwm) {\n if (!(hwm > 0) || ((hwm - 1) & hwm) !== 0) throw new Error('Max size for a FixedFIFO should be a power of two')\n this.buffer = new Array(hwm)\n this.mask = hwm - 1\n this.top = 0\n this.btm = 0\n this.next = null\n }\n\n clear () {\n this.top = this.btm = 0\n this.next = null\n this.buffer.fill(undefined)\n }\n\n push (data) {\n if (this.buffer[this.top] !== undefined) return false\n this.buffer[this.top] = data\n this.top = (this.top + 1) & this.mask\n return true\n }\n\n shift () {\n const last = this.buffer[this.btm]\n if (last === undefined) return undefined\n this.buffer[this.btm] = undefined\n this.btm = (this.btm + 1) & this.mask\n return last\n }\n\n peek () {\n return this.buffer[this.btm]\n }\n\n isEmpty () {\n return this.buffer[this.btm] === undefined\n }\n}\n","const FixedFIFO = require('./fixed-size')\n\nmodule.exports = class FastFIFO {\n constructor (hwm) {\n this.hwm = hwm || 16\n this.head = new FixedFIFO(this.hwm)\n this.tail = this.head\n this.length = 0\n }\n\n clear () {\n this.head = this.tail\n this.head.clear()\n this.length = 0\n }\n\n push (val) {\n this.length++\n if (!this.head.push(val)) {\n const prev = this.head\n this.head = prev.next = new FixedFIFO(2 * this.head.buffer.length)\n this.head.push(val)\n }\n }\n\n shift () {\n if (this.length !== 0) this.length--\n const val = this.tail.shift()\n if (val === undefined && this.tail.next) {\n const next = this.tail.next\n this.tail.next = null\n this.tail = next\n return this.tail.shift()\n }\n\n return val\n }\n\n peek () {\n const val = this.tail.peek()\n if (val === undefined && this.tail.next) return this.tail.next.peek()\n return val\n }\n\n isEmpty () {\n return this.length === 0\n }\n}\n","function isBuffer (value) {\n return Buffer.isBuffer(value) || value instanceof Uint8Array\n}\n\nfunction isEncoding (encoding) {\n return Buffer.isEncoding(encoding)\n}\n\nfunction alloc (size, fill, encoding) {\n return Buffer.alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n return Buffer.allocUnsafe(size)\n}\n\nfunction allocUnsafeSlow (size) {\n return Buffer.allocUnsafeSlow(size)\n}\n\nfunction byteLength (string, encoding) {\n return Buffer.byteLength(string, encoding)\n}\n\nfunction compare (a, b) {\n return Buffer.compare(a, b)\n}\n\nfunction concat (buffers, totalLength) {\n return Buffer.concat(buffers, totalLength)\n}\n\nfunction copy (source, target, targetStart, start, end) {\n return toBuffer(source).copy(target, targetStart, start, end)\n}\n\nfunction equals (a, b) {\n return toBuffer(a).equals(b)\n}\n\nfunction fill (buffer, value, offset, end, encoding) {\n return toBuffer(buffer).fill(value, offset, end, encoding)\n}\n\nfunction from (value, encodingOrOffset, length) {\n return Buffer.from(value, encodingOrOffset, length)\n}\n\nfunction includes (buffer, value, byteOffset, encoding) {\n return toBuffer(buffer).includes(value, byteOffset, encoding)\n}\n\nfunction indexOf (buffer, value, byfeOffset, encoding) {\n return toBuffer(buffer).indexOf(value, byfeOffset, encoding)\n}\n\nfunction lastIndexOf (buffer, value, byteOffset, encoding) {\n return toBuffer(buffer).lastIndexOf(value, byteOffset, encoding)\n}\n\nfunction swap16 (buffer) {\n return toBuffer(buffer).swap16()\n}\n\nfunction swap32 (buffer) {\n return toBuffer(buffer).swap32()\n}\n\nfunction swap64 (buffer) {\n return toBuffer(buffer).swap64()\n}\n\nfunction toBuffer (buffer) {\n if (Buffer.isBuffer(buffer)) return buffer\n return Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n}\n\nfunction toString (buffer, encoding, start, end) {\n return toBuffer(buffer).toString(encoding, start, end)\n}\n\nfunction write (buffer, string, offset, length, encoding) {\n return toBuffer(buffer).write(string, offset, length, encoding)\n}\n\nfunction writeDoubleLE (buffer, value, offset) {\n return toBuffer(buffer).writeDoubleLE(value, offset)\n}\n\nfunction writeFloatLE (buffer, value, offset) {\n return toBuffer(buffer).writeFloatLE(value, offset)\n}\n\nfunction writeUInt32LE (buffer, value, offset) {\n return toBuffer(buffer).writeUInt32LE(value, offset)\n}\n\nfunction writeInt32LE (buffer, value, offset) {\n return toBuffer(buffer).writeInt32LE(value, offset)\n}\n\nfunction readDoubleLE (buffer, offset) {\n return toBuffer(buffer).readDoubleLE(offset)\n}\n\nfunction readFloatLE (buffer, offset) {\n return toBuffer(buffer).readFloatLE(offset)\n}\n\nfunction readUInt32LE (buffer, offset) {\n return toBuffer(buffer).readUInt32LE(offset)\n}\n\nfunction readInt32LE (buffer, offset) {\n return toBuffer(buffer).readInt32LE(offset)\n}\n\nfunction writeDoubleBE (buffer, value, offset) {\n return toBuffer(buffer).writeDoubleBE(value, offset)\n}\n\nfunction writeFloatBE (buffer, value, offset) {\n return toBuffer(buffer).writeFloatBE(value, offset)\n}\n\nfunction writeUInt32BE (buffer, value, offset) {\n return toBuffer(buffer).writeUInt32BE(value, offset)\n}\n\nfunction writeInt32BE (buffer, value, offset) {\n return toBuffer(buffer).writeInt32BE(value, offset)\n}\n\nfunction readDoubleBE (buffer, offset) {\n return toBuffer(buffer).readDoubleBE(offset)\n}\n\nfunction readFloatBE (buffer, offset) {\n return toBuffer(buffer).readFloatBE(offset)\n}\n\nfunction readUInt32BE (buffer, offset) {\n return toBuffer(buffer).readUInt32BE(offset)\n}\n\nfunction readInt32BE (buffer, offset) {\n return toBuffer(buffer).readInt32BE(offset)\n}\n\nmodule.exports = {\n isBuffer,\n isEncoding,\n alloc,\n allocUnsafe,\n allocUnsafeSlow,\n byteLength,\n compare,\n concat,\n copy,\n equals,\n fill,\n from,\n includes,\n indexOf,\n lastIndexOf,\n swap16,\n swap32,\n swap64,\n toBuffer,\n toString,\n write,\n writeDoubleLE,\n writeFloatLE,\n writeUInt32LE,\n writeInt32LE,\n readDoubleLE,\n readFloatLE,\n readUInt32LE,\n readInt32LE,\n writeDoubleBE,\n writeFloatBE,\n writeUInt32BE,\n writeInt32BE,\n readDoubleBE,\n readFloatBE,\n readUInt32BE,\n readInt32BE\n\n}\n","const b4a = require('b4a')\n\nmodule.exports = class PassThroughDecoder {\n constructor (encoding) {\n this.encoding = encoding\n }\n\n get remaining () {\n return 0\n }\n\n decode (tail) {\n return b4a.toString(tail, this.encoding)\n }\n\n flush () {\n return ''\n }\n}\n","const b4a = require('b4a')\n\n/**\n * https://encoding.spec.whatwg.org/#utf-8-decoder\n */\nmodule.exports = class UTF8Decoder {\n constructor () {\n this.codePoint = 0\n this.bytesSeen = 0\n this.bytesNeeded = 0\n this.lowerBoundary = 0x80\n this.upperBoundary = 0xbf\n }\n\n get remaining () {\n return this.bytesSeen\n }\n\n decode (data) {\n // If we have a fast path, just sniff if the last part is a boundary\n if (this.bytesNeeded === 0) {\n let isBoundary = true\n\n for (let i = Math.max(0, data.byteLength - 4), n = data.byteLength; i < n && isBoundary; i++) {\n isBoundary = data[i] <= 0x7f\n }\n\n if (isBoundary) return b4a.toString(data, 'utf8')\n }\n\n let result = ''\n\n for (let i = 0, n = data.byteLength; i < n; i++) {\n const byte = data[i]\n\n if (this.bytesNeeded === 0) {\n if (byte <= 0x7f) {\n result += String.fromCharCode(byte)\n } else {\n this.bytesSeen = 1\n\n if (byte >= 0xc2 && byte <= 0xdf) {\n this.bytesNeeded = 2\n this.codePoint = byte & 0x1f\n } else if (byte >= 0xe0 && byte <= 0xef) {\n if (byte === 0xe0) this.lowerBoundary = 0xa0\n else if (byte === 0xed) this.upperBoundary = 0x9f\n this.bytesNeeded = 3\n this.codePoint = byte & 0xf\n } else if (byte >= 0xf0 && byte <= 0xf4) {\n if (byte === 0xf0) this.lowerBoundary = 0x90\n if (byte === 0xf4) this.upperBoundary = 0x8f\n this.bytesNeeded = 4\n this.codePoint = byte & 0x7\n } else {\n result += '\\ufffd'\n }\n }\n\n continue\n }\n\n if (byte < this.lowerBoundary || byte > this.upperBoundary) {\n this.codePoint = 0\n this.bytesNeeded = 0\n this.bytesSeen = 0\n this.lowerBoundary = 0x80\n this.upperBoundary = 0xbf\n\n result += '\\ufffd'\n\n continue\n }\n\n this.lowerBoundary = 0x80\n this.upperBoundary = 0xbf\n\n this.codePoint = (this.codePoint << 6) | (byte & 0x3f)\n this.bytesSeen++\n\n if (this.bytesSeen !== this.bytesNeeded) continue\n\n result += String.fromCodePoint(this.codePoint)\n\n this.codePoint = 0\n this.bytesNeeded = 0\n this.bytesSeen = 0\n }\n\n return result\n }\n\n flush () {\n const result = this.bytesNeeded > 0 ? '\\ufffd' : ''\n\n this.codePoint = 0\n this.bytesNeeded = 0\n this.bytesSeen = 0\n this.lowerBoundary = 0x80\n this.upperBoundary = 0xbf\n\n return result\n }\n}\n","const PassThroughDecoder = require('./lib/pass-through-decoder')\nconst UTF8Decoder = require('./lib/utf8-decoder')\n\nmodule.exports = class TextDecoder {\n constructor (encoding = 'utf8') {\n this.encoding = normalizeEncoding(encoding)\n\n switch (this.encoding) {\n case 'utf8':\n this.decoder = new UTF8Decoder()\n break\n case 'utf16le':\n case 'base64':\n throw new Error('Unsupported encoding: ' + this.encoding)\n default:\n this.decoder = new PassThroughDecoder(this.encoding)\n }\n }\n\n get remaining () {\n return this.decoder.remaining\n }\n\n push (data) {\n if (typeof data === 'string') return data\n return this.decoder.decode(data)\n }\n\n // For Node.js compatibility\n write (data) {\n return this.push(data)\n }\n\n end (data) {\n let result = ''\n if (data) result = this.push(data)\n result += this.decoder.flush()\n return result\n }\n}\n\nfunction normalizeEncoding (encoding) {\n encoding = encoding.toLowerCase()\n\n switch (encoding) {\n case 'utf8':\n case 'utf-8':\n return 'utf8'\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le'\n case 'latin1':\n case 'binary':\n return 'latin1'\n case 'base64':\n case 'ascii':\n case 'hex':\n return encoding\n default:\n throw new Error('Unknown encoding: ' + encoding)\n }\n};\n","const { EventEmitter } = require('events')\nconst STREAM_DESTROYED = new Error('Stream was destroyed')\nconst PREMATURE_CLOSE = new Error('Premature close')\n\nconst FIFO = require('fast-fifo')\nconst TextDecoder = require('text-decoder')\n\n/* eslint-disable no-multi-spaces */\n\n// 29 bits used total (4 from shared, 14 from read, and 11 from write)\nconst MAX = ((1 << 29) - 1)\n\n// Shared state\nconst OPENING = 0b0001\nconst PREDESTROYING = 0b0010\nconst DESTROYING = 0b0100\nconst DESTROYED = 0b1000\n\nconst NOT_OPENING = MAX ^ OPENING\nconst NOT_PREDESTROYING = MAX ^ PREDESTROYING\n\n// Read state (4 bit offset from shared state)\nconst READ_ACTIVE = 0b00000000000001 << 4\nconst READ_UPDATING = 0b00000000000010 << 4\nconst READ_PRIMARY = 0b00000000000100 << 4\nconst READ_QUEUED = 0b00000000001000 << 4\nconst READ_RESUMED = 0b00000000010000 << 4\nconst READ_PIPE_DRAINED = 0b00000000100000 << 4\nconst READ_ENDING = 0b00000001000000 << 4\nconst READ_EMIT_DATA = 0b00000010000000 << 4\nconst READ_EMIT_READABLE = 0b00000100000000 << 4\nconst READ_EMITTED_READABLE = 0b00001000000000 << 4\nconst READ_DONE = 0b00010000000000 << 4\nconst READ_NEXT_TICK = 0b00100000000000 << 4\nconst READ_NEEDS_PUSH = 0b01000000000000 << 4\nconst READ_READ_AHEAD = 0b10000000000000 << 4\n\n// Combined read state\nconst READ_FLOWING = READ_RESUMED | READ_PIPE_DRAINED\nconst READ_ACTIVE_AND_NEEDS_PUSH = READ_ACTIVE | READ_NEEDS_PUSH\nconst READ_PRIMARY_AND_ACTIVE = READ_PRIMARY | READ_ACTIVE\nconst READ_EMIT_READABLE_AND_QUEUED = READ_EMIT_READABLE | READ_QUEUED\nconst READ_RESUMED_READ_AHEAD = READ_RESUMED | READ_READ_AHEAD\n\nconst READ_NOT_ACTIVE = MAX ^ READ_ACTIVE\nconst READ_NON_PRIMARY = MAX ^ READ_PRIMARY\nconst READ_NON_PRIMARY_AND_PUSHED = MAX ^ (READ_PRIMARY | READ_NEEDS_PUSH)\nconst READ_PUSHED = MAX ^ READ_NEEDS_PUSH\nconst READ_PAUSED = MAX ^ READ_RESUMED\nconst READ_NOT_QUEUED = MAX ^ (READ_QUEUED | READ_EMITTED_READABLE)\nconst READ_NOT_ENDING = MAX ^ READ_ENDING\nconst READ_PIPE_NOT_DRAINED = MAX ^ READ_FLOWING\nconst READ_NOT_NEXT_TICK = MAX ^ READ_NEXT_TICK\nconst READ_NOT_UPDATING = MAX ^ READ_UPDATING\nconst READ_NO_READ_AHEAD = MAX ^ READ_READ_AHEAD\nconst READ_PAUSED_NO_READ_AHEAD = MAX ^ READ_RESUMED_READ_AHEAD\n\n// Write state (18 bit offset, 4 bit offset from shared state and 14 from read state)\nconst WRITE_ACTIVE = 0b00000000001 << 18\nconst WRITE_UPDATING = 0b00000000010 << 18\nconst WRITE_PRIMARY = 0b00000000100 << 18\nconst WRITE_QUEUED = 0b00000001000 << 18\nconst WRITE_UNDRAINED = 0b00000010000 << 18\nconst WRITE_DONE = 0b00000100000 << 18\nconst WRITE_EMIT_DRAIN = 0b00001000000 << 18\nconst WRITE_NEXT_TICK = 0b00010000000 << 18\nconst WRITE_WRITING = 0b00100000000 << 18\nconst WRITE_FINISHING = 0b01000000000 << 18\nconst WRITE_CORKED = 0b10000000000 << 18\n\nconst WRITE_NOT_ACTIVE = MAX ^ (WRITE_ACTIVE | WRITE_WRITING)\nconst WRITE_NON_PRIMARY = MAX ^ WRITE_PRIMARY\nconst WRITE_NOT_FINISHING = MAX ^ (WRITE_ACTIVE | WRITE_FINISHING)\nconst WRITE_DRAINED = MAX ^ WRITE_UNDRAINED\nconst WRITE_NOT_QUEUED = MAX ^ WRITE_QUEUED\nconst WRITE_NOT_NEXT_TICK = MAX ^ WRITE_NEXT_TICK\nconst WRITE_NOT_UPDATING = MAX ^ WRITE_UPDATING\nconst WRITE_NOT_CORKED = MAX ^ WRITE_CORKED\n\n// Combined shared state\nconst ACTIVE = READ_ACTIVE | WRITE_ACTIVE\nconst NOT_ACTIVE = MAX ^ ACTIVE\nconst DONE = READ_DONE | WRITE_DONE\nconst DESTROY_STATUS = DESTROYING | DESTROYED | PREDESTROYING\nconst OPEN_STATUS = DESTROY_STATUS | OPENING\nconst AUTO_DESTROY = DESTROY_STATUS | DONE\nconst NON_PRIMARY = WRITE_NON_PRIMARY & READ_NON_PRIMARY\nconst ACTIVE_OR_TICKING = WRITE_NEXT_TICK | READ_NEXT_TICK\nconst TICKING = ACTIVE_OR_TICKING & NOT_ACTIVE\nconst IS_OPENING = OPEN_STATUS | TICKING\n\n// Combined shared state and read state\nconst READ_PRIMARY_STATUS = OPEN_STATUS | READ_ENDING | READ_DONE\nconst READ_STATUS = OPEN_STATUS | READ_DONE | READ_QUEUED\nconst READ_ENDING_STATUS = OPEN_STATUS | READ_ENDING | READ_QUEUED\nconst READ_READABLE_STATUS = OPEN_STATUS | READ_EMIT_READABLE | READ_QUEUED | READ_EMITTED_READABLE\nconst SHOULD_NOT_READ = OPEN_STATUS | READ_ACTIVE | READ_ENDING | READ_DONE | READ_NEEDS_PUSH | READ_READ_AHEAD\nconst READ_BACKPRESSURE_STATUS = DESTROY_STATUS | READ_ENDING | READ_DONE\nconst READ_UPDATE_SYNC_STATUS = READ_UPDATING | OPEN_STATUS | READ_NEXT_TICK | READ_PRIMARY\nconst READ_NEXT_TICK_OR_OPENING = READ_NEXT_TICK | OPENING\n\n// Combined write state\nconst WRITE_PRIMARY_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_DONE\nconst WRITE_QUEUED_AND_UNDRAINED = WRITE_QUEUED | WRITE_UNDRAINED\nconst WRITE_QUEUED_AND_ACTIVE = WRITE_QUEUED | WRITE_ACTIVE\nconst WRITE_DRAIN_STATUS = WRITE_QUEUED | WRITE_UNDRAINED | OPEN_STATUS | WRITE_ACTIVE\nconst WRITE_STATUS = OPEN_STATUS | WRITE_ACTIVE | WRITE_QUEUED | WRITE_CORKED\nconst WRITE_PRIMARY_AND_ACTIVE = WRITE_PRIMARY | WRITE_ACTIVE\nconst WRITE_ACTIVE_AND_WRITING = WRITE_ACTIVE | WRITE_WRITING\nconst WRITE_FINISHING_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_QUEUED_AND_ACTIVE | WRITE_DONE\nconst WRITE_BACKPRESSURE_STATUS = WRITE_UNDRAINED | DESTROY_STATUS | WRITE_FINISHING | WRITE_DONE\nconst WRITE_UPDATE_SYNC_STATUS = WRITE_UPDATING | OPEN_STATUS | WRITE_NEXT_TICK | WRITE_PRIMARY\nconst WRITE_DROP_DATA = WRITE_FINISHING | WRITE_DONE | DESTROY_STATUS\n\nconst asyncIterator = Symbol.asyncIterator || Symbol('asyncIterator')\n\nclass WritableState {\n constructor (stream, { highWaterMark = 16384, map = null, mapWritable, byteLength, byteLengthWritable } = {}) {\n this.stream = stream\n this.queue = new FIFO()\n this.highWaterMark = highWaterMark\n this.buffered = 0\n this.error = null\n this.pipeline = null\n this.drains = null // if we add more seldomly used helpers we might them into a subobject so its a single ptr\n this.byteLength = byteLengthWritable || byteLength || defaultByteLength\n this.map = mapWritable || map\n this.afterWrite = afterWrite.bind(this)\n this.afterUpdateNextTick = updateWriteNT.bind(this)\n }\n\n get ended () {\n return (this.stream._duplexState & WRITE_DONE) !== 0\n }\n\n push (data) {\n if ((this.stream._duplexState & WRITE_DROP_DATA) !== 0) return false\n if (this.map !== null) data = this.map(data)\n\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n\n if (this.buffered < this.highWaterMark) {\n this.stream._duplexState |= WRITE_QUEUED\n return true\n }\n\n this.stream._duplexState |= WRITE_QUEUED_AND_UNDRAINED\n return false\n }\n\n shift () {\n const data = this.queue.shift()\n\n this.buffered -= this.byteLength(data)\n if (this.buffered === 0) this.stream._duplexState &= WRITE_NOT_QUEUED\n\n return data\n }\n\n end (data) {\n if (typeof data === 'function') this.stream.once('finish', data)\n else if (data !== undefined && data !== null) this.push(data)\n this.stream._duplexState = (this.stream._duplexState | WRITE_FINISHING) & WRITE_NON_PRIMARY\n }\n\n autoBatch (data, cb) {\n const buffer = []\n const stream = this.stream\n\n buffer.push(data)\n while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED_AND_ACTIVE) {\n buffer.push(stream._writableState.shift())\n }\n\n if ((stream._duplexState & OPEN_STATUS) !== 0) return cb(null)\n stream._writev(buffer, cb)\n }\n\n update () {\n const stream = this.stream\n\n stream._duplexState |= WRITE_UPDATING\n\n do {\n while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED) {\n const data = this.shift()\n stream._duplexState |= WRITE_ACTIVE_AND_WRITING\n stream._write(data, this.afterWrite)\n }\n\n if ((stream._duplexState & WRITE_PRIMARY_AND_ACTIVE) === 0) this.updateNonPrimary()\n } while (this.continueUpdate() === true)\n\n stream._duplexState &= WRITE_NOT_UPDATING\n }\n\n updateNonPrimary () {\n const stream = this.stream\n\n if ((stream._duplexState & WRITE_FINISHING_STATUS) === WRITE_FINISHING) {\n stream._duplexState = stream._duplexState | WRITE_ACTIVE\n stream._final(afterFinal.bind(this))\n return\n }\n\n if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) {\n if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) {\n stream._duplexState |= ACTIVE\n stream._destroy(afterDestroy.bind(this))\n }\n return\n }\n\n if ((stream._duplexState & IS_OPENING) === OPENING) {\n stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING\n stream._open(afterOpen.bind(this))\n }\n }\n\n continueUpdate () {\n if ((this.stream._duplexState & WRITE_NEXT_TICK) === 0) return false\n this.stream._duplexState &= WRITE_NOT_NEXT_TICK\n return true\n }\n\n updateCallback () {\n if ((this.stream._duplexState & WRITE_UPDATE_SYNC_STATUS) === WRITE_PRIMARY) this.update()\n else this.updateNextTick()\n }\n\n updateNextTick () {\n if ((this.stream._duplexState & WRITE_NEXT_TICK) !== 0) return\n this.stream._duplexState |= WRITE_NEXT_TICK\n if ((this.stream._duplexState & WRITE_UPDATING) === 0) queueMicrotask(this.afterUpdateNextTick)\n }\n}\n\nclass ReadableState {\n constructor (stream, { highWaterMark = 16384, map = null, mapReadable, byteLength, byteLengthReadable } = {}) {\n this.stream = stream\n this.queue = new FIFO()\n this.highWaterMark = highWaterMark === 0 ? 1 : highWaterMark\n this.buffered = 0\n this.readAhead = highWaterMark > 0\n this.error = null\n this.pipeline = null\n this.byteLength = byteLengthReadable || byteLength || defaultByteLength\n this.map = mapReadable || map\n this.pipeTo = null\n this.afterRead = afterRead.bind(this)\n this.afterUpdateNextTick = updateReadNT.bind(this)\n }\n\n get ended () {\n return (this.stream._duplexState & READ_DONE) !== 0\n }\n\n pipe (pipeTo, cb) {\n if (this.pipeTo !== null) throw new Error('Can only pipe to one destination')\n if (typeof cb !== 'function') cb = null\n\n this.stream._duplexState |= READ_PIPE_DRAINED\n this.pipeTo = pipeTo\n this.pipeline = new Pipeline(this.stream, pipeTo, cb)\n\n if (cb) this.stream.on('error', noop) // We already error handle this so supress crashes\n\n if (isStreamx(pipeTo)) {\n pipeTo._writableState.pipeline = this.pipeline\n if (cb) pipeTo.on('error', noop) // We already error handle this so supress crashes\n pipeTo.on('finish', this.pipeline.finished.bind(this.pipeline)) // TODO: just call finished from pipeTo itself\n } else {\n const onerror = this.pipeline.done.bind(this.pipeline, pipeTo)\n const onclose = this.pipeline.done.bind(this.pipeline, pipeTo, null) // onclose has a weird bool arg\n pipeTo.on('error', onerror)\n pipeTo.on('close', onclose)\n pipeTo.on('finish', this.pipeline.finished.bind(this.pipeline))\n }\n\n pipeTo.on('drain', afterDrain.bind(this))\n this.stream.emit('piping', pipeTo)\n pipeTo.emit('pipe', this.stream)\n }\n\n push (data) {\n const stream = this.stream\n\n if (data === null) {\n this.highWaterMark = 0\n stream._duplexState = (stream._duplexState | READ_ENDING) & READ_NON_PRIMARY_AND_PUSHED\n return false\n }\n\n if (this.map !== null) {\n data = this.map(data)\n if (data === null) {\n stream._duplexState &= READ_PUSHED\n return this.buffered < this.highWaterMark\n }\n }\n\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n\n stream._duplexState = (stream._duplexState | READ_QUEUED) & READ_PUSHED\n\n return this.buffered < this.highWaterMark\n }\n\n shift () {\n const data = this.queue.shift()\n\n this.buffered -= this.byteLength(data)\n if (this.buffered === 0) this.stream._duplexState &= READ_NOT_QUEUED\n return data\n }\n\n unshift (data) {\n const pending = [this.map !== null ? this.map(data) : data]\n while (this.buffered > 0) pending.push(this.shift())\n\n for (let i = 0; i < pending.length - 1; i++) {\n const data = pending[i]\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n }\n\n this.push(pending[pending.length - 1])\n }\n\n read () {\n const stream = this.stream\n\n if ((stream._duplexState & READ_STATUS) === READ_QUEUED) {\n const data = this.shift()\n if (this.pipeTo !== null && this.pipeTo.write(data) === false) stream._duplexState &= READ_PIPE_NOT_DRAINED\n if ((stream._duplexState & READ_EMIT_DATA) !== 0) stream.emit('data', data)\n return data\n }\n\n if (this.readAhead === false) {\n stream._duplexState |= READ_READ_AHEAD\n this.updateNextTick()\n }\n\n return null\n }\n\n drain () {\n const stream = this.stream\n\n while ((stream._duplexState & READ_STATUS) === READ_QUEUED && (stream._duplexState & READ_FLOWING) !== 0) {\n const data = this.shift()\n if (this.pipeTo !== null && this.pipeTo.write(data) === false) stream._duplexState &= READ_PIPE_NOT_DRAINED\n if ((stream._duplexState & READ_EMIT_DATA) !== 0) stream.emit('data', data)\n }\n }\n\n update () {\n const stream = this.stream\n\n stream._duplexState |= READ_UPDATING\n\n do {\n this.drain()\n\n while (this.buffered < this.highWaterMark && (stream._duplexState & SHOULD_NOT_READ) === READ_READ_AHEAD) {\n stream._duplexState |= READ_ACTIVE_AND_NEEDS_PUSH\n stream._read(this.afterRead)\n this.drain()\n }\n\n if ((stream._duplexState & READ_READABLE_STATUS) === READ_EMIT_READABLE_AND_QUEUED) {\n stream._duplexState |= READ_EMITTED_READABLE\n stream.emit('readable')\n }\n\n if ((stream._duplexState & READ_PRIMARY_AND_ACTIVE) === 0) this.updateNonPrimary()\n } while (this.continueUpdate() === true)\n\n stream._duplexState &= READ_NOT_UPDATING\n }\n\n updateNonPrimary () {\n const stream = this.stream\n\n if ((stream._duplexState & READ_ENDING_STATUS) === READ_ENDING) {\n stream._duplexState = (stream._duplexState | READ_DONE) & READ_NOT_ENDING\n stream.emit('end')\n if ((stream._duplexState & AUTO_DESTROY) === DONE) stream._duplexState |= DESTROYING\n if (this.pipeTo !== null) this.pipeTo.end()\n }\n\n if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) {\n if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) {\n stream._duplexState |= ACTIVE\n stream._destroy(afterDestroy.bind(this))\n }\n return\n }\n\n if ((stream._duplexState & IS_OPENING) === OPENING) {\n stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING\n stream._open(afterOpen.bind(this))\n }\n }\n\n continueUpdate () {\n if ((this.stream._duplexState & READ_NEXT_TICK) === 0) return false\n this.stream._duplexState &= READ_NOT_NEXT_TICK\n return true\n }\n\n updateCallback () {\n if ((this.stream._duplexState & READ_UPDATE_SYNC_STATUS) === READ_PRIMARY) this.update()\n else this.updateNextTick()\n }\n\n updateNextTickIfOpen () {\n if ((this.stream._duplexState & READ_NEXT_TICK_OR_OPENING) !== 0) return\n this.stream._duplexState |= READ_NEXT_TICK\n if ((this.stream._duplexState & READ_UPDATING) === 0) queueMicrotask(this.afterUpdateNextTick)\n }\n\n updateNextTick () {\n if ((this.stream._duplexState & READ_NEXT_TICK) !== 0) return\n this.stream._duplexState |= READ_NEXT_TICK\n if ((this.stream._duplexState & READ_UPDATING) === 0) queueMicrotask(this.afterUpdateNextTick)\n }\n}\n\nclass TransformState {\n constructor (stream) {\n this.data = null\n this.afterTransform = afterTransform.bind(stream)\n this.afterFinal = null\n }\n}\n\nclass Pipeline {\n constructor (src, dst, cb) {\n this.from = src\n this.to = dst\n this.afterPipe = cb\n this.error = null\n this.pipeToFinished = false\n }\n\n finished () {\n this.pipeToFinished = true\n }\n\n done (stream, err) {\n if (err) this.error = err\n\n if (stream === this.to) {\n this.to = null\n\n if (this.from !== null) {\n if ((this.from._duplexState & READ_DONE) === 0 || !this.pipeToFinished) {\n this.from.destroy(this.error || new Error('Writable stream closed prematurely'))\n }\n return\n }\n }\n\n if (stream === this.from) {\n this.from = null\n\n if (this.to !== null) {\n if ((stream._duplexState & READ_DONE) === 0) {\n this.to.destroy(this.error || new Error('Readable stream closed before ending'))\n }\n return\n }\n }\n\n if (this.afterPipe !== null) this.afterPipe(this.error)\n this.to = this.from = this.afterPipe = null\n }\n}\n\nfunction afterDrain () {\n this.stream._duplexState |= READ_PIPE_DRAINED\n this.updateCallback()\n}\n\nfunction afterFinal (err) {\n const stream = this.stream\n if (err) stream.destroy(err)\n if ((stream._duplexState & DESTROY_STATUS) === 0) {\n stream._duplexState |= WRITE_DONE\n stream.emit('finish')\n }\n if ((stream._duplexState & AUTO_DESTROY) === DONE) {\n stream._duplexState |= DESTROYING\n }\n\n stream._duplexState &= WRITE_NOT_FINISHING\n\n // no need to wait the extra tick here, so we short circuit that\n if ((stream._duplexState & WRITE_UPDATING) === 0) this.update()\n else this.updateNextTick()\n}\n\nfunction afterDestroy (err) {\n const stream = this.stream\n\n if (!err && this.error !== STREAM_DESTROYED) err = this.error\n if (err) stream.emit('error', err)\n stream._duplexState |= DESTROYED\n stream.emit('close')\n\n const rs = stream._readableState\n const ws = stream._writableState\n\n if (rs !== null && rs.pipeline !== null) rs.pipeline.done(stream, err)\n\n if (ws !== null) {\n while (ws.drains !== null && ws.drains.length > 0) ws.drains.shift().resolve(false)\n if (ws.pipeline !== null) ws.pipeline.done(stream, err)\n }\n}\n\nfunction afterWrite (err) {\n const stream = this.stream\n\n if (err) stream.destroy(err)\n stream._duplexState &= WRITE_NOT_ACTIVE\n\n if (this.drains !== null) tickDrains(this.drains)\n\n if ((stream._duplexState & WRITE_DRAIN_STATUS) === WRITE_UNDRAINED) {\n stream._duplexState &= WRITE_DRAINED\n if ((stream._duplexState & WRITE_EMIT_DRAIN) === WRITE_EMIT_DRAIN) {\n stream.emit('drain')\n }\n }\n\n this.updateCallback()\n}\n\nfunction afterRead (err) {\n if (err) this.stream.destroy(err)\n this.stream._duplexState &= READ_NOT_ACTIVE\n if (this.readAhead === false && (this.stream._duplexState & READ_RESUMED) === 0) this.stream._duplexState &= READ_NO_READ_AHEAD\n this.updateCallback()\n}\n\nfunction updateReadNT () {\n if ((this.stream._duplexState & READ_UPDATING) === 0) {\n this.stream._duplexState &= READ_NOT_NEXT_TICK\n this.update()\n }\n}\n\nfunction updateWriteNT () {\n if ((this.stream._duplexState & WRITE_UPDATING) === 0) {\n this.stream._duplexState &= WRITE_NOT_NEXT_TICK\n this.update()\n }\n}\n\nfunction tickDrains (drains) {\n for (let i = 0; i < drains.length; i++) {\n // drains.writes are monotonic, so if one is 0 its always the first one\n if (--drains[i].writes === 0) {\n drains.shift().resolve(true)\n i--\n }\n }\n}\n\nfunction afterOpen (err) {\n const stream = this.stream\n\n if (err) stream.destroy(err)\n\n if ((stream._duplexState & DESTROYING) === 0) {\n if ((stream._duplexState & READ_PRIMARY_STATUS) === 0) stream._duplexState |= READ_PRIMARY\n if ((stream._duplexState & WRITE_PRIMARY_STATUS) === 0) stream._duplexState |= WRITE_PRIMARY\n stream.emit('open')\n }\n\n stream._duplexState &= NOT_ACTIVE\n\n if (stream._writableState !== null) {\n stream._writableState.updateCallback()\n }\n\n if (stream._readableState !== null) {\n stream._readableState.updateCallback()\n }\n}\n\nfunction afterTransform (err, data) {\n if (data !== undefined && data !== null) this.push(data)\n this._writableState.afterWrite(err)\n}\n\nfunction newListener (name) {\n if (this._readableState !== null) {\n if (name === 'data') {\n this._duplexState |= (READ_EMIT_DATA | READ_RESUMED_READ_AHEAD)\n this._readableState.updateNextTick()\n }\n if (name === 'readable') {\n this._duplexState |= READ_EMIT_READABLE\n this._readableState.updateNextTick()\n }\n }\n\n if (this._writableState !== null) {\n if (name === 'drain') {\n this._duplexState |= WRITE_EMIT_DRAIN\n this._writableState.updateNextTick()\n }\n }\n}\n\nclass Stream extends EventEmitter {\n constructor (opts) {\n super()\n\n this._duplexState = 0\n this._readableState = null\n this._writableState = null\n\n if (opts) {\n if (opts.open) this._open = opts.open\n if (opts.destroy) this._destroy = opts.destroy\n if (opts.predestroy) this._predestroy = opts.predestroy\n if (opts.signal) {\n opts.signal.addEventListener('abort', abort.bind(this))\n }\n }\n\n this.on('newListener', newListener)\n }\n\n _open (cb) {\n cb(null)\n }\n\n _destroy (cb) {\n cb(null)\n }\n\n _predestroy () {\n // does nothing\n }\n\n get readable () {\n return this._readableState !== null ? true : undefined\n }\n\n get writable () {\n return this._writableState !== null ? true : undefined\n }\n\n get destroyed () {\n return (this._duplexState & DESTROYED) !== 0\n }\n\n get destroying () {\n return (this._duplexState & DESTROY_STATUS) !== 0\n }\n\n destroy (err) {\n if ((this._duplexState & DESTROY_STATUS) === 0) {\n if (!err) err = STREAM_DESTROYED\n this._duplexState = (this._duplexState | DESTROYING) & NON_PRIMARY\n\n if (this._readableState !== null) {\n this._readableState.highWaterMark = 0\n this._readableState.error = err\n }\n if (this._writableState !== null) {\n this._writableState.highWaterMark = 0\n this._writableState.error = err\n }\n\n this._duplexState |= PREDESTROYING\n this._predestroy()\n this._duplexState &= NOT_PREDESTROYING\n\n if (this._readableState !== null) this._readableState.updateNextTick()\n if (this._writableState !== null) this._writableState.updateNextTick()\n }\n }\n}\n\nclass Readable extends Stream {\n constructor (opts) {\n super(opts)\n\n this._duplexState |= OPENING | WRITE_DONE | READ_READ_AHEAD\n this._readableState = new ReadableState(this, opts)\n\n if (opts) {\n if (this._readableState.readAhead === false) this._duplexState &= READ_NO_READ_AHEAD\n if (opts.read) this._read = opts.read\n if (opts.eagerOpen) this._readableState.updateNextTick()\n if (opts.encoding) this.setEncoding(opts.encoding)\n }\n }\n\n setEncoding (encoding) {\n const dec = new TextDecoder(encoding)\n const map = this._readableState.map || echo\n this._readableState.map = mapOrSkip\n return this\n\n function mapOrSkip (data) {\n const next = dec.push(data)\n return next === '' && (data.byteLength !== 0 || dec.remaining > 0) ? null : map(next)\n }\n }\n\n _read (cb) {\n cb(null)\n }\n\n pipe (dest, cb) {\n this._readableState.updateNextTick()\n this._readableState.pipe(dest, cb)\n return dest\n }\n\n read () {\n this._readableState.updateNextTick()\n return this._readableState.read()\n }\n\n push (data) {\n this._readableState.updateNextTickIfOpen()\n return this._readableState.push(data)\n }\n\n unshift (data) {\n this._readableState.updateNextTickIfOpen()\n return this._readableState.unshift(data)\n }\n\n resume () {\n this._duplexState |= READ_RESUMED_READ_AHEAD\n this._readableState.updateNextTick()\n return this\n }\n\n pause () {\n this._duplexState &= (this._readableState.readAhead === false ? READ_PAUSED_NO_READ_AHEAD : READ_PAUSED)\n return this\n }\n\n static _fromAsyncIterator (ite, opts) {\n let destroy\n\n const rs = new Readable({\n ...opts,\n read (cb) {\n ite.next().then(push).then(cb.bind(null, null)).catch(cb)\n },\n predestroy () {\n destroy = ite.return()\n },\n destroy (cb) {\n if (!destroy) return cb(null)\n destroy.then(cb.bind(null, null)).catch(cb)\n }\n })\n\n return rs\n\n function push (data) {\n if (data.done) rs.push(null)\n else rs.push(data.value)\n }\n }\n\n static from (data, opts) {\n if (isReadStreamx(data)) return data\n if (data[asyncIterator]) return this._fromAsyncIterator(data[asyncIterator](), opts)\n if (!Array.isArray(data)) data = data === undefined ? [] : [data]\n\n let i = 0\n return new Readable({\n ...opts,\n read (cb) {\n this.push(i === data.length ? null : data[i++])\n cb(null)\n }\n })\n }\n\n static isBackpressured (rs) {\n return (rs._duplexState & READ_BACKPRESSURE_STATUS) !== 0 || rs._readableState.buffered >= rs._readableState.highWaterMark\n }\n\n static isPaused (rs) {\n return (rs._duplexState & READ_RESUMED) === 0\n }\n\n [asyncIterator] () {\n const stream = this\n\n let error = null\n let promiseResolve = null\n let promiseReject = null\n\n this.on('error', (err) => { error = err })\n this.on('readable', onreadable)\n this.on('close', onclose)\n\n return {\n [asyncIterator] () {\n return this\n },\n next () {\n return new Promise(function (resolve, reject) {\n promiseResolve = resolve\n promiseReject = reject\n const data = stream.read()\n if (data !== null) ondata(data)\n else if ((stream._duplexState & DESTROYED) !== 0) ondata(null)\n })\n },\n return () {\n return destroy(null)\n },\n throw (err) {\n return destroy(err)\n }\n }\n\n function onreadable () {\n if (promiseResolve !== null) ondata(stream.read())\n }\n\n function onclose () {\n if (promiseResolve !== null) ondata(null)\n }\n\n function ondata (data) {\n if (promiseReject === null) return\n if (error) promiseReject(error)\n else if (data === null && (stream._duplexState & READ_DONE) === 0) promiseReject(STREAM_DESTROYED)\n else promiseResolve({ value: data, done: data === null })\n promiseReject = promiseResolve = null\n }\n\n function destroy (err) {\n stream.destroy(err)\n return new Promise((resolve, reject) => {\n if (stream._duplexState & DESTROYED) return resolve({ value: undefined, done: true })\n stream.once('close', function () {\n if (err) reject(err)\n else resolve({ value: undefined, done: true })\n })\n })\n }\n }\n}\n\nclass Writable extends Stream {\n constructor (opts) {\n super(opts)\n\n this._duplexState |= OPENING | READ_DONE\n this._writableState = new WritableState(this, opts)\n\n if (opts) {\n if (opts.writev) this._writev = opts.writev\n if (opts.write) this._write = opts.write\n if (opts.final) this._final = opts.final\n if (opts.eagerOpen) this._writableState.updateNextTick()\n }\n }\n\n cork () {\n this._duplexState |= WRITE_CORKED\n }\n\n uncork () {\n this._duplexState &= WRITE_NOT_CORKED\n this._writableState.updateNextTick()\n }\n\n _writev (batch, cb) {\n cb(null)\n }\n\n _write (data, cb) {\n this._writableState.autoBatch(data, cb)\n }\n\n _final (cb) {\n cb(null)\n }\n\n static isBackpressured (ws) {\n return (ws._duplexState & WRITE_BACKPRESSURE_STATUS) !== 0\n }\n\n static drained (ws) {\n if (ws.destroyed) return Promise.resolve(false)\n const state = ws._writableState\n const pending = (isWritev(ws) ? Math.min(1, state.queue.length) : state.queue.length)\n const writes = pending + ((ws._duplexState & WRITE_WRITING) ? 1 : 0)\n if (writes === 0) return Promise.resolve(true)\n if (state.drains === null) state.drains = []\n return new Promise((resolve) => {\n state.drains.push({ writes, resolve })\n })\n }\n\n write (data) {\n this._writableState.updateNextTick()\n return this._writableState.push(data)\n }\n\n end (data) {\n this._writableState.updateNextTick()\n this._writableState.end(data)\n return this\n }\n}\n\nclass Duplex extends Readable { // and Writable\n constructor (opts) {\n super(opts)\n\n this._duplexState = OPENING | (this._duplexState & READ_READ_AHEAD)\n this._writableState = new WritableState(this, opts)\n\n if (opts) {\n if (opts.writev) this._writev = opts.writev\n if (opts.write) this._write = opts.write\n if (opts.final) this._final = opts.final\n }\n }\n\n cork () {\n this._duplexState |= WRITE_CORKED\n }\n\n uncork () {\n this._duplexState &= WRITE_NOT_CORKED\n this._writableState.updateNextTick()\n }\n\n _writev (batch, cb) {\n cb(null)\n }\n\n _write (data, cb) {\n this._writableState.autoBatch(data, cb)\n }\n\n _final (cb) {\n cb(null)\n }\n\n write (data) {\n this._writableState.updateNextTick()\n return this._writableState.push(data)\n }\n\n end (data) {\n this._writableState.updateNextTick()\n this._writableState.end(data)\n return this\n }\n}\n\nclass Transform extends Duplex {\n constructor (opts) {\n super(opts)\n this._transformState = new TransformState(this)\n\n if (opts) {\n if (opts.transform) this._transform = opts.transform\n if (opts.flush) this._flush = opts.flush\n }\n }\n\n _write (data, cb) {\n if (this._readableState.buffered >= this._readableState.highWaterMark) {\n this._transformState.data = data\n } else {\n this._transform(data, this._transformState.afterTransform)\n }\n }\n\n _read (cb) {\n if (this._transformState.data !== null) {\n const data = this._transformState.data\n this._transformState.data = null\n cb(null)\n this._transform(data, this._transformState.afterTransform)\n } else {\n cb(null)\n }\n }\n\n destroy (err) {\n super.destroy(err)\n if (this._transformState.data !== null) {\n this._transformState.data = null\n this._transformState.afterTransform()\n }\n }\n\n _transform (data, cb) {\n cb(null, data)\n }\n\n _flush (cb) {\n cb(null)\n }\n\n _final (cb) {\n this._transformState.afterFinal = cb\n this._flush(transformAfterFlush.bind(this))\n }\n}\n\nclass PassThrough extends Transform {}\n\nfunction transformAfterFlush (err, data) {\n const cb = this._transformState.afterFinal\n if (err) return cb(err)\n if (data !== null && data !== undefined) this.push(data)\n this.push(null)\n cb(null)\n}\n\nfunction pipelinePromise (...streams) {\n return new Promise((resolve, reject) => {\n return pipeline(...streams, (err) => {\n if (err) return reject(err)\n resolve()\n })\n })\n}\n\nfunction pipeline (stream, ...streams) {\n const all = Array.isArray(stream) ? [...stream, ...streams] : [stream, ...streams]\n const done = (all.length && typeof all[all.length - 1] === 'function') ? all.pop() : null\n\n if (all.length < 2) throw new Error('Pipeline requires at least 2 streams')\n\n let src = all[0]\n let dest = null\n let error = null\n\n for (let i = 1; i < all.length; i++) {\n dest = all[i]\n\n if (isStreamx(src)) {\n src.pipe(dest, onerror)\n } else {\n errorHandle(src, true, i > 1, onerror)\n src.pipe(dest)\n }\n\n src = dest\n }\n\n if (done) {\n let fin = false\n\n const autoDestroy = isStreamx(dest) || !!(dest._writableState && dest._writableState.autoDestroy)\n\n dest.on('error', (err) => {\n if (error === null) error = err\n })\n\n dest.on('finish', () => {\n fin = true\n if (!autoDestroy) done(error)\n })\n\n if (autoDestroy) {\n dest.on('close', () => done(error || (fin ? null : PREMATURE_CLOSE)))\n }\n }\n\n return dest\n\n function errorHandle (s, rd, wr, onerror) {\n s.on('error', onerror)\n s.on('close', onclose)\n\n function onclose () {\n if (rd && s._readableState && !s._readableState.ended) return onerror(PREMATURE_CLOSE)\n if (wr && s._writableState && !s._writableState.ended) return onerror(PREMATURE_CLOSE)\n }\n }\n\n function onerror (err) {\n if (!err || error) return\n error = err\n\n for (const s of all) {\n s.destroy(err)\n }\n }\n}\n\nfunction echo (s) {\n return s\n}\n\nfunction isStream (stream) {\n return !!stream._readableState || !!stream._writableState\n}\n\nfunction isStreamx (stream) {\n return typeof stream._duplexState === 'number' && isStream(stream)\n}\n\nfunction isEnded (stream) {\n return !!stream._readableState && stream._readableState.ended\n}\n\nfunction isFinished (stream) {\n return !!stream._writableState && stream._writableState.ended\n}\n\nfunction getStreamError (stream, opts = {}) {\n const err = (stream._readableState && stream._readableState.error) || (stream._writableState && stream._writableState.error)\n\n // avoid implicit errors by default\n return (!opts.all && err === STREAM_DESTROYED) ? null : err\n}\n\nfunction isReadStreamx (stream) {\n return isStreamx(stream) && stream.readable\n}\n\nfunction isDisturbed (stream) {\n return (stream._duplexState & OPENING) !== OPENING || (stream._duplexState & ACTIVE_OR_TICKING) !== 0\n}\n\nfunction isTypedArray (data) {\n return typeof data === 'object' && data !== null && typeof data.byteLength === 'number'\n}\n\nfunction defaultByteLength (data) {\n return isTypedArray(data) ? data.byteLength : 1024\n}\n\nfunction noop () {}\n\nfunction abort () {\n this.destroy(new Error('Stream aborted.'))\n}\n\nfunction isWritev (s) {\n return s._writev !== Writable.prototype._writev && s._writev !== Duplex.prototype._writev\n}\n\nmodule.exports = {\n pipeline,\n pipelinePromise,\n isStream,\n isStreamx,\n isEnded,\n isFinished,\n isDisturbed,\n getStreamError,\n Stream,\n Writable,\n Readable,\n Duplex,\n Transform,\n // Export PassThrough for compatibility with Node.js core's stream module\n PassThrough\n}\n","const b4a = require('b4a')\n\nconst ZEROS = '0000000000000000000'\nconst SEVENS = '7777777777777777777'\nconst ZERO_OFFSET = '0'.charCodeAt(0)\nconst USTAR_MAGIC = b4a.from([0x75, 0x73, 0x74, 0x61, 0x72, 0x00]) // ustar\\x00\nconst USTAR_VER = b4a.from([ZERO_OFFSET, ZERO_OFFSET])\nconst GNU_MAGIC = b4a.from([0x75, 0x73, 0x74, 0x61, 0x72, 0x20]) // ustar\\x20\nconst GNU_VER = b4a.from([0x20, 0x00])\nconst MASK = 0o7777\nconst MAGIC_OFFSET = 257\nconst VERSION_OFFSET = 263\n\nexports.decodeLongPath = function decodeLongPath (buf, encoding) {\n return decodeStr(buf, 0, buf.length, encoding)\n}\n\nexports.encodePax = function encodePax (opts) { // TODO: encode more stuff in pax\n let result = ''\n if (opts.name) result += addLength(' path=' + opts.name + '\\n')\n if (opts.linkname) result += addLength(' linkpath=' + opts.linkname + '\\n')\n const pax = opts.pax\n if (pax) {\n for (const key in pax) {\n result += addLength(' ' + key + '=' + pax[key] + '\\n')\n }\n }\n return b4a.from(result)\n}\n\nexports.decodePax = function decodePax (buf) {\n const result = {}\n\n while (buf.length) {\n let i = 0\n while (i < buf.length && buf[i] !== 32) i++\n const len = parseInt(b4a.toString(buf.subarray(0, i)), 10)\n if (!len) return result\n\n const b = b4a.toString(buf.subarray(i + 1, len - 1))\n const keyIndex = b.indexOf('=')\n if (keyIndex === -1) return result\n result[b.slice(0, keyIndex)] = b.slice(keyIndex + 1)\n\n buf = buf.subarray(len)\n }\n\n return result\n}\n\nexports.encode = function encode (opts) {\n const buf = b4a.alloc(512)\n let name = opts.name\n let prefix = ''\n\n if (opts.typeflag === 5 && name[name.length - 1] !== '/') name += '/'\n if (b4a.byteLength(name) !== name.length) return null // utf-8\n\n while (b4a.byteLength(name) > 100) {\n const i = name.indexOf('/')\n if (i === -1) return null\n prefix += prefix ? '/' + name.slice(0, i) : name.slice(0, i)\n name = name.slice(i + 1)\n }\n\n if (b4a.byteLength(name) > 100 || b4a.byteLength(prefix) > 155) return null\n if (opts.linkname && b4a.byteLength(opts.linkname) > 100) return null\n\n b4a.write(buf, name)\n b4a.write(buf, encodeOct(opts.mode & MASK, 6), 100)\n b4a.write(buf, encodeOct(opts.uid, 6), 108)\n b4a.write(buf, encodeOct(opts.gid, 6), 116)\n encodeSize(opts.size, buf, 124)\n b4a.write(buf, encodeOct((opts.mtime.getTime() / 1000) | 0, 11), 136)\n\n buf[156] = ZERO_OFFSET + toTypeflag(opts.type)\n\n if (opts.linkname) b4a.write(buf, opts.linkname, 157)\n\n b4a.copy(USTAR_MAGIC, buf, MAGIC_OFFSET)\n b4a.copy(USTAR_VER, buf, VERSION_OFFSET)\n if (opts.uname) b4a.write(buf, opts.uname, 265)\n if (opts.gname) b4a.write(buf, opts.gname, 297)\n b4a.write(buf, encodeOct(opts.devmajor || 0, 6), 329)\n b4a.write(buf, encodeOct(opts.devminor || 0, 6), 337)\n\n if (prefix) b4a.write(buf, prefix, 345)\n\n b4a.write(buf, encodeOct(cksum(buf), 6), 148)\n\n return buf\n}\n\nexports.decode = function decode (buf, filenameEncoding, allowUnknownFormat) {\n let typeflag = buf[156] === 0 ? 0 : buf[156] - ZERO_OFFSET\n\n let name = decodeStr(buf, 0, 100, filenameEncoding)\n const mode = decodeOct(buf, 100, 8)\n const uid = decodeOct(buf, 108, 8)\n const gid = decodeOct(buf, 116, 8)\n const size = decodeOct(buf, 124, 12)\n const mtime = decodeOct(buf, 136, 12)\n const type = toType(typeflag)\n const linkname = buf[157] === 0 ? null : decodeStr(buf, 157, 100, filenameEncoding)\n const uname = decodeStr(buf, 265, 32)\n const gname = decodeStr(buf, 297, 32)\n const devmajor = decodeOct(buf, 329, 8)\n const devminor = decodeOct(buf, 337, 8)\n\n const c = cksum(buf)\n\n // checksum is still initial value if header was null.\n if (c === 8 * 32) return null\n\n // valid checksum\n if (c !== decodeOct(buf, 148, 8)) throw new Error('Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?')\n\n if (isUSTAR(buf)) {\n // ustar (posix) format.\n // prepend prefix, if present.\n if (buf[345]) name = decodeStr(buf, 345, 155, filenameEncoding) + '/' + name\n } else if (isGNU(buf)) {\n // 'gnu'/'oldgnu' format. Similar to ustar, but has support for incremental and\n // multi-volume tarballs.\n } else {\n if (!allowUnknownFormat) {\n throw new Error('Invalid tar header: unknown format.')\n }\n }\n\n // to support old tar versions that use trailing / to indicate dirs\n if (typeflag === 0 && name && name[name.length - 1] === '/') typeflag = 5\n\n return {\n name,\n mode,\n uid,\n gid,\n size,\n mtime: new Date(1000 * mtime),\n type,\n linkname,\n uname,\n gname,\n devmajor,\n devminor,\n pax: null\n }\n}\n\nfunction isUSTAR (buf) {\n return b4a.equals(USTAR_MAGIC, buf.subarray(MAGIC_OFFSET, MAGIC_OFFSET + 6))\n}\n\nfunction isGNU (buf) {\n return b4a.equals(GNU_MAGIC, buf.subarray(MAGIC_OFFSET, MAGIC_OFFSET + 6)) &&\n b4a.equals(GNU_VER, buf.subarray(VERSION_OFFSET, VERSION_OFFSET + 2))\n}\n\nfunction clamp (index, len, defaultValue) {\n if (typeof index !== 'number') return defaultValue\n index = ~~index // Coerce to integer.\n if (index >= len) return len\n if (index >= 0) return index\n index += len\n if (index >= 0) return index\n return 0\n}\n\nfunction toType (flag) {\n switch (flag) {\n case 0:\n return 'file'\n case 1:\n return 'link'\n case 2:\n return 'symlink'\n case 3:\n return 'character-device'\n case 4:\n return 'block-device'\n case 5:\n return 'directory'\n case 6:\n return 'fifo'\n case 7:\n return 'contiguous-file'\n case 72:\n return 'pax-header'\n case 55:\n return 'pax-global-header'\n case 27:\n return 'gnu-long-link-path'\n case 28:\n case 30:\n return 'gnu-long-path'\n }\n\n return null\n}\n\nfunction toTypeflag (flag) {\n switch (flag) {\n case 'file':\n return 0\n case 'link':\n return 1\n case 'symlink':\n return 2\n case 'character-device':\n return 3\n case 'block-device':\n return 4\n case 'directory':\n return 5\n case 'fifo':\n return 6\n case 'contiguous-file':\n return 7\n case 'pax-header':\n return 72\n }\n\n return 0\n}\n\nfunction indexOf (block, num, offset, end) {\n for (; offset < end; offset++) {\n if (block[offset] === num) return offset\n }\n return end\n}\n\nfunction cksum (block) {\n let sum = 8 * 32\n for (let i = 0; i < 148; i++) sum += block[i]\n for (let j = 156; j < 512; j++) sum += block[j]\n return sum\n}\n\nfunction encodeOct (val, n) {\n val = val.toString(8)\n if (val.length > n) return SEVENS.slice(0, n) + ' '\n return ZEROS.slice(0, n - val.length) + val + ' '\n}\n\nfunction encodeSizeBin (num, buf, off) {\n buf[off] = 0x80\n for (let i = 11; i > 0; i--) {\n buf[off + i] = num & 0xff\n num = Math.floor(num / 0x100)\n }\n}\n\nfunction encodeSize (num, buf, off) {\n if (num.toString(8).length > 11) {\n encodeSizeBin(num, buf, off)\n } else {\n b4a.write(buf, encodeOct(num, 11), off)\n }\n}\n\n/* Copied from the node-tar repo and modified to meet\n * tar-stream coding standard.\n *\n * Source: https://github.com/npm/node-tar/blob/51b6627a1f357d2eb433e7378e5f05e83b7aa6cd/lib/header.js#L349\n */\nfunction parse256 (buf) {\n // first byte MUST be either 80 or FF\n // 80 for positive, FF for 2's comp\n let positive\n if (buf[0] === 0x80) positive = true\n else if (buf[0] === 0xFF) positive = false\n else return null\n\n // build up a base-256 tuple from the least sig to the highest\n const tuple = []\n let i\n for (i = buf.length - 1; i > 0; i--) {\n const byte = buf[i]\n if (positive) tuple.push(byte)\n else tuple.push(0xFF - byte)\n }\n\n let sum = 0\n const l = tuple.length\n for (i = 0; i < l; i++) {\n sum += tuple[i] * Math.pow(256, i)\n }\n\n return positive ? sum : -1 * sum\n}\n\nfunction decodeOct (val, offset, length) {\n val = val.subarray(offset, offset + length)\n offset = 0\n\n // If prefixed with 0x80 then parse as a base-256 integer\n if (val[offset] & 0x80) {\n return parse256(val)\n } else {\n // Older versions of tar can prefix with spaces\n while (offset < val.length && val[offset] === 32) offset++\n const end = clamp(indexOf(val, 32, offset, val.length), val.length, val.length)\n while (offset < end && val[offset] === 0) offset++\n if (end === offset) return 0\n return parseInt(b4a.toString(val.subarray(offset, end)), 8)\n }\n}\n\nfunction decodeStr (val, offset, length, encoding) {\n return b4a.toString(val.subarray(offset, indexOf(val, 0, offset, offset + length)), encoding)\n}\n\nfunction addLength (str) {\n const len = b4a.byteLength(str)\n let digits = Math.floor(Math.log(len) / Math.log(10)) + 1\n if (len + digits >= Math.pow(10, digits)) digits++\n\n return (len + digits) + str\n}\n","const { Writable, Readable, getStreamError } = require('streamx')\nconst FIFO = require('fast-fifo')\nconst b4a = require('b4a')\nconst headers = require('./headers')\n\nconst EMPTY = b4a.alloc(0)\n\nclass BufferList {\n constructor () {\n this.buffered = 0\n this.shifted = 0\n this.queue = new FIFO()\n\n this._offset = 0\n }\n\n push (buffer) {\n this.buffered += buffer.byteLength\n this.queue.push(buffer)\n }\n\n shiftFirst (size) {\n return this._buffered === 0 ? null : this._next(size)\n }\n\n shift (size) {\n if (size > this.buffered) return null\n if (size === 0) return EMPTY\n\n let chunk = this._next(size)\n\n if (size === chunk.byteLength) return chunk // likely case\n\n const chunks = [chunk]\n\n while ((size -= chunk.byteLength) > 0) {\n chunk = this._next(size)\n chunks.push(chunk)\n }\n\n return b4a.concat(chunks)\n }\n\n _next (size) {\n const buf = this.queue.peek()\n const rem = buf.byteLength - this._offset\n\n if (size >= rem) {\n const sub = this._offset ? buf.subarray(this._offset, buf.byteLength) : buf\n this.queue.shift()\n this._offset = 0\n this.buffered -= rem\n this.shifted += rem\n return sub\n }\n\n this.buffered -= size\n this.shifted += size\n\n return buf.subarray(this._offset, (this._offset += size))\n }\n}\n\nclass Source extends Readable {\n constructor (self, header, offset) {\n super()\n\n this.header = header\n this.offset = offset\n\n this._parent = self\n }\n\n _read (cb) {\n if (this.header.size === 0) {\n this.push(null)\n }\n if (this._parent._stream === this) {\n this._parent._update()\n }\n cb(null)\n }\n\n _predestroy () {\n this._parent.destroy(getStreamError(this))\n }\n\n _detach () {\n if (this._parent._stream === this) {\n this._parent._stream = null\n this._parent._missing = overflow(this.header.size)\n this._parent._update()\n }\n }\n\n _destroy (cb) {\n this._detach()\n cb(null)\n }\n}\n\nclass Extract extends Writable {\n constructor (opts) {\n super(opts)\n\n if (!opts) opts = {}\n\n this._buffer = new BufferList()\n this._offset = 0\n this._header = null\n this._stream = null\n this._missing = 0\n this._longHeader = false\n this._callback = noop\n this._locked = false\n this._finished = false\n this._pax = null\n this._paxGlobal = null\n this._gnuLongPath = null\n this._gnuLongLinkPath = null\n this._filenameEncoding = opts.filenameEncoding || 'utf-8'\n this._allowUnknownFormat = !!opts.allowUnknownFormat\n this._unlockBound = this._unlock.bind(this)\n }\n\n _unlock (err) {\n this._locked = false\n\n if (err) {\n this.destroy(err)\n this._continueWrite(err)\n return\n }\n\n this._update()\n }\n\n _consumeHeader () {\n if (this._locked) return false\n\n this._offset = this._buffer.shifted\n\n try {\n this._header = headers.decode(this._buffer.shift(512), this._filenameEncoding, this._allowUnknownFormat)\n } catch (err) {\n this._continueWrite(err)\n return false\n }\n\n if (!this._header) return true\n\n switch (this._header.type) {\n case 'gnu-long-path':\n case 'gnu-long-link-path':\n case 'pax-global-header':\n case 'pax-header':\n this._longHeader = true\n this._missing = this._header.size\n return true\n }\n\n this._locked = true\n this._applyLongHeaders()\n\n if (this._header.size === 0 || this._header.type === 'directory') {\n this.emit('entry', this._header, this._createStream(), this._unlockBound)\n return true\n }\n\n this._stream = this._createStream()\n this._missing = this._header.size\n\n this.emit('entry', this._header, this._stream, this._unlockBound)\n return true\n }\n\n _applyLongHeaders () {\n if (this._gnuLongPath) {\n this._header.name = this._gnuLongPath\n this._gnuLongPath = null\n }\n\n if (this._gnuLongLinkPath) {\n this._header.linkname = this._gnuLongLinkPath\n this._gnuLongLinkPath = null\n }\n\n if (this._pax) {\n if (this._pax.path) this._header.name = this._pax.path\n if (this._pax.linkpath) this._header.linkname = this._pax.linkpath\n if (this._pax.size) this._header.size = parseInt(this._pax.size, 10)\n this._header.pax = this._pax\n this._pax = null\n }\n }\n\n _decodeLongHeader (buf) {\n switch (this._header.type) {\n case 'gnu-long-path':\n this._gnuLongPath = headers.decodeLongPath(buf, this._filenameEncoding)\n break\n case 'gnu-long-link-path':\n this._gnuLongLinkPath = headers.decodeLongPath(buf, this._filenameEncoding)\n break\n case 'pax-global-header':\n this._paxGlobal = headers.decodePax(buf)\n break\n case 'pax-header':\n this._pax = this._paxGlobal === null\n ? headers.decodePax(buf)\n : Object.assign({}, this._paxGlobal, headers.decodePax(buf))\n break\n }\n }\n\n _consumeLongHeader () {\n this._longHeader = false\n this._missing = overflow(this._header.size)\n\n const buf = this._buffer.shift(this._header.size)\n\n try {\n this._decodeLongHeader(buf)\n } catch (err) {\n this._continueWrite(err)\n return false\n }\n\n return true\n }\n\n _consumeStream () {\n const buf = this._buffer.shiftFirst(this._missing)\n if (buf === null) return false\n\n this._missing -= buf.byteLength\n const drained = this._stream.push(buf)\n\n if (this._missing === 0) {\n this._stream.push(null)\n if (drained) this._stream._detach()\n return drained && this._locked === false\n }\n\n return drained\n }\n\n _createStream () {\n return new Source(this, this._header, this._offset)\n }\n\n _update () {\n while (this._buffer.buffered > 0 && !this.destroying) {\n if (this._missing > 0) {\n if (this._stream !== null) {\n if (this._consumeStream() === false) return\n continue\n }\n\n if (this._longHeader === true) {\n if (this._missing > this._buffer.buffered) break\n if (this._consumeLongHeader() === false) return false\n continue\n }\n\n const ignore = this._buffer.shiftFirst(this._missing)\n if (ignore !== null) this._missing -= ignore.byteLength\n continue\n }\n\n if (this._buffer.buffered < 512) break\n if (this._stream !== null || this._consumeHeader() === false) return\n }\n\n this._continueWrite(null)\n }\n\n _continueWrite (err) {\n const cb = this._callback\n this._callback = noop\n cb(err)\n }\n\n _write (data, cb) {\n this._callback = cb\n this._buffer.push(data)\n this._update()\n }\n\n _final (cb) {\n this._finished = this._missing === 0 && this._buffer.buffered === 0\n cb(this._finished ? null : new Error('Unexpected end of data'))\n }\n\n _predestroy () {\n this._continueWrite(null)\n }\n\n _destroy (cb) {\n if (this._stream) this._stream.destroy(getStreamError(this))\n cb(null)\n }\n\n [Symbol.asyncIterator] () {\n let error = null\n\n let promiseResolve = null\n let promiseReject = null\n\n let entryStream = null\n let entryCallback = null\n\n const extract = this\n\n this.on('entry', onentry)\n this.on('error', (err) => { error = err })\n this.on('close', onclose)\n\n return {\n [Symbol.asyncIterator] () {\n return this\n },\n next () {\n return new Promise(onnext)\n },\n return () {\n return destroy(null)\n },\n throw (err) {\n return destroy(err)\n }\n }\n\n function consumeCallback (err) {\n if (!entryCallback) return\n const cb = entryCallback\n entryCallback = null\n cb(err)\n }\n\n function onnext (resolve, reject) {\n if (error) {\n return reject(error)\n }\n\n if (entryStream) {\n resolve({ value: entryStream, done: false })\n entryStream = null\n return\n }\n\n promiseResolve = resolve\n promiseReject = reject\n\n consumeCallback(null)\n\n if (extract._finished && promiseResolve) {\n promiseResolve({ value: undefined, done: true })\n promiseResolve = promiseReject = null\n }\n }\n\n function onentry (header, stream, callback) {\n entryCallback = callback\n stream.on('error', noop) // no way around this due to tick sillyness\n\n if (promiseResolve) {\n promiseResolve({ value: stream, done: false })\n promiseResolve = promiseReject = null\n } else {\n entryStream = stream\n }\n }\n\n function onclose () {\n consumeCallback(error)\n if (!promiseResolve) return\n if (error) promiseReject(error)\n else promiseResolve({ value: undefined, done: true })\n promiseResolve = promiseReject = null\n }\n\n function destroy (err) {\n extract.destroy(err)\n consumeCallback(err)\n return new Promise((resolve, reject) => {\n if (extract.destroyed) return resolve({ value: undefined, done: true })\n extract.once('close', function () {\n if (err) reject(err)\n else resolve({ value: undefined, done: true })\n })\n })\n }\n }\n}\n\nmodule.exports = function extract (opts) {\n return new Extract(opts)\n}\n\nfunction noop () {}\n\nfunction overflow (size) {\n size &= 511\n return size && 512 - size\n}\n","const constants = { // just for envs without fs\n S_IFMT: 61440,\n S_IFDIR: 16384,\n S_IFCHR: 8192,\n S_IFBLK: 24576,\n S_IFIFO: 4096,\n S_IFLNK: 40960\n}\n\ntry {\n module.exports = require('fs').constants || constants\n} catch {\n module.exports = constants\n}\n","const { Readable, Writable, getStreamError } = require('streamx')\nconst b4a = require('b4a')\n\nconst constants = require('./constants')\nconst headers = require('./headers')\n\nconst DMODE = 0o755\nconst FMODE = 0o644\n\nconst END_OF_TAR = b4a.alloc(1024)\n\nclass Sink extends Writable {\n constructor (pack, header, callback) {\n super({ mapWritable, eagerOpen: true })\n\n this.written = 0\n this.header = header\n\n this._callback = callback\n this._linkname = null\n this._isLinkname = header.type === 'symlink' && !header.linkname\n this._isVoid = header.type !== 'file' && header.type !== 'contiguous-file'\n this._finished = false\n this._pack = pack\n this._openCallback = null\n\n if (this._pack._stream === null) this._pack._stream = this\n else this._pack._pending.push(this)\n }\n\n _open (cb) {\n this._openCallback = cb\n if (this._pack._stream === this) this._continueOpen()\n }\n\n _continuePack (err) {\n if (this._callback === null) return\n\n const callback = this._callback\n this._callback = null\n\n callback(err)\n }\n\n _continueOpen () {\n if (this._pack._stream === null) this._pack._stream = this\n\n const cb = this._openCallback\n this._openCallback = null\n if (cb === null) return\n\n if (this._pack.destroying) return cb(new Error('pack stream destroyed'))\n if (this._pack._finalized) return cb(new Error('pack stream is already finalized'))\n\n this._pack._stream = this\n\n if (!this._isLinkname) {\n this._pack._encode(this.header)\n }\n\n if (this._isVoid) {\n this._finish()\n this._continuePack(null)\n }\n\n cb(null)\n }\n\n _write (data, cb) {\n if (this._isLinkname) {\n this._linkname = this._linkname ? b4a.concat([this._linkname, data]) : data\n return cb(null)\n }\n\n if (this._isVoid) {\n if (data.byteLength > 0) {\n return cb(new Error('No body allowed for this entry'))\n }\n return cb()\n }\n\n this.written += data.byteLength\n if (this._pack.push(data)) return cb()\n this._pack._drain = cb\n }\n\n _finish () {\n if (this._finished) return\n this._finished = true\n\n if (this._isLinkname) {\n this.header.linkname = this._linkname ? b4a.toString(this._linkname, 'utf-8') : ''\n this._pack._encode(this.header)\n }\n\n overflow(this._pack, this.header.size)\n\n this._pack._done(this)\n }\n\n _final (cb) {\n if (this.written !== this.header.size) { // corrupting tar\n return cb(new Error('Size mismatch'))\n }\n\n this._finish()\n cb(null)\n }\n\n _getError () {\n return getStreamError(this) || new Error('tar entry destroyed')\n }\n\n _predestroy () {\n this._pack.destroy(this._getError())\n }\n\n _destroy (cb) {\n this._pack._done(this)\n\n this._continuePack(this._finished ? null : this._getError())\n\n cb()\n }\n}\n\nclass Pack extends Readable {\n constructor (opts) {\n super(opts)\n this._drain = noop\n this._finalized = false\n this._finalizing = false\n this._pending = []\n this._stream = null\n }\n\n entry (header, buffer, callback) {\n if (this._finalized || this.destroying) throw new Error('already finalized or destroyed')\n\n if (typeof buffer === 'function') {\n callback = buffer\n buffer = null\n }\n\n if (!callback) callback = noop\n\n if (!header.size || header.type === 'symlink') header.size = 0\n if (!header.type) header.type = modeToType(header.mode)\n if (!header.mode) header.mode = header.type === 'directory' ? DMODE : FMODE\n if (!header.uid) header.uid = 0\n if (!header.gid) header.gid = 0\n if (!header.mtime) header.mtime = new Date()\n\n if (typeof buffer === 'string') buffer = b4a.from(buffer)\n\n const sink = new Sink(this, header, callback)\n\n if (b4a.isBuffer(buffer)) {\n header.size = buffer.byteLength\n sink.write(buffer)\n sink.end()\n return sink\n }\n\n if (sink._isVoid) {\n return sink\n }\n\n return sink\n }\n\n finalize () {\n if (this._stream || this._pending.length > 0) {\n this._finalizing = true\n return\n }\n\n if (this._finalized) return\n this._finalized = true\n\n this.push(END_OF_TAR)\n this.push(null)\n }\n\n _done (stream) {\n if (stream !== this._stream) return\n\n this._stream = null\n\n if (this._finalizing) this.finalize()\n if (this._pending.length) this._pending.shift()._continueOpen()\n }\n\n _encode (header) {\n if (!header.pax) {\n const buf = headers.encode(header)\n if (buf) {\n this.push(buf)\n return\n }\n }\n this._encodePax(header)\n }\n\n _encodePax (header) {\n const paxHeader = headers.encodePax({\n name: header.name,\n linkname: header.linkname,\n pax: header.pax\n })\n\n const newHeader = {\n name: 'PaxHeader',\n mode: header.mode,\n uid: header.uid,\n gid: header.gid,\n size: paxHeader.byteLength,\n mtime: header.mtime,\n type: 'pax-header',\n linkname: header.linkname && 'PaxHeader',\n uname: header.uname,\n gname: header.gname,\n devmajor: header.devmajor,\n devminor: header.devminor\n }\n\n this.push(headers.encode(newHeader))\n this.push(paxHeader)\n overflow(this, paxHeader.byteLength)\n\n newHeader.size = header.size\n newHeader.type = header.type\n this.push(headers.encode(newHeader))\n }\n\n _doDrain () {\n const drain = this._drain\n this._drain = noop\n drain()\n }\n\n _predestroy () {\n const err = getStreamError(this)\n\n if (this._stream) this._stream.destroy(err)\n\n while (this._pending.length) {\n const stream = this._pending.shift()\n stream.destroy(err)\n stream._continueOpen()\n }\n\n this._doDrain()\n }\n\n _read (cb) {\n this._doDrain()\n cb()\n }\n}\n\nmodule.exports = function pack (opts) {\n return new Pack(opts)\n}\n\nfunction modeToType (mode) {\n switch (mode & constants.S_IFMT) {\n case constants.S_IFBLK: return 'block-device'\n case constants.S_IFCHR: return 'character-device'\n case constants.S_IFDIR: return 'directory'\n case constants.S_IFIFO: return 'fifo'\n case constants.S_IFLNK: return 'symlink'\n }\n\n return 'file'\n}\n\nfunction noop () {}\n\nfunction overflow (self, size) {\n size &= 511\n if (size) self.push(END_OF_TAR.subarray(0, 512 - size))\n}\n\nfunction mapWritable (buf) {\n return b4a.isBuffer(buf) ? buf : b4a.from(buf)\n}\n","exports.extract = require('./extract')\nexports.pack = require('./pack')\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","var once = require('once');\n\nvar noop = function() {};\n\nvar isRequest = function(stream) {\n\treturn stream.setHeader && typeof stream.abort === 'function';\n};\n\nvar isChildProcess = function(stream) {\n\treturn stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3\n};\n\nvar eos = function(stream, opts, callback) {\n\tif (typeof opts === 'function') return eos(stream, null, opts);\n\tif (!opts) opts = {};\n\n\tcallback = once(callback || noop);\n\n\tvar ws = stream._writableState;\n\tvar rs = stream._readableState;\n\tvar readable = opts.readable || (opts.readable !== false && stream.readable);\n\tvar writable = opts.writable || (opts.writable !== false && stream.writable);\n\tvar cancelled = false;\n\n\tvar onlegacyfinish = function() {\n\t\tif (!stream.writable) onfinish();\n\t};\n\n\tvar onfinish = function() {\n\t\twritable = false;\n\t\tif (!readable) callback.call(stream);\n\t};\n\n\tvar onend = function() {\n\t\treadable = false;\n\t\tif (!writable) callback.call(stream);\n\t};\n\n\tvar onexit = function(exitCode) {\n\t\tcallback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null);\n\t};\n\n\tvar onerror = function(err) {\n\t\tcallback.call(stream, err);\n\t};\n\n\tvar onclose = function() {\n\t\tprocess.nextTick(onclosenexttick);\n\t};\n\n\tvar onclosenexttick = function() {\n\t\tif (cancelled) return;\n\t\tif (readable && !(rs && (rs.ended && !rs.destroyed))) return callback.call(stream, new Error('premature close'));\n\t\tif (writable && !(ws && (ws.ended && !ws.destroyed))) return callback.call(stream, new Error('premature close'));\n\t};\n\n\tvar onrequest = function() {\n\t\tstream.req.on('finish', onfinish);\n\t};\n\n\tif (isRequest(stream)) {\n\t\tstream.on('complete', onfinish);\n\t\tstream.on('abort', onclose);\n\t\tif (stream.req) onrequest();\n\t\telse stream.on('request', onrequest);\n\t} else if (writable && !ws) { // legacy streams\n\t\tstream.on('end', onlegacyfinish);\n\t\tstream.on('close', onlegacyfinish);\n\t}\n\n\tif (isChildProcess(stream)) stream.on('exit', onexit);\n\n\tstream.on('end', onend);\n\tstream.on('finish', onfinish);\n\tif (opts.error !== false) stream.on('error', onerror);\n\tstream.on('close', onclose);\n\n\treturn function() {\n\t\tcancelled = true;\n\t\tstream.removeListener('complete', onfinish);\n\t\tstream.removeListener('abort', onclose);\n\t\tstream.removeListener('request', onrequest);\n\t\tif (stream.req) stream.req.removeListener('finish', onfinish);\n\t\tstream.removeListener('end', onlegacyfinish);\n\t\tstream.removeListener('close', onlegacyfinish);\n\t\tstream.removeListener('finish', onfinish);\n\t\tstream.removeListener('exit', onexit);\n\t\tstream.removeListener('end', onend);\n\t\tstream.removeListener('error', onerror);\n\t\tstream.removeListener('close', onclose);\n\t};\n};\n\nmodule.exports = eos;\n","var once = require('once')\nvar eos = require('end-of-stream')\nvar fs\n\ntry {\n fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes\n} catch (e) {}\n\nvar noop = function () {}\nvar ancient = /^v?\\.0/.test(process.version)\n\nvar isFn = function (fn) {\n return typeof fn === 'function'\n}\n\nvar isFS = function (stream) {\n if (!ancient) return false // newer node version do not need to care about fs is a special way\n if (!fs) return false // browser\n return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close)\n}\n\nvar isRequest = function (stream) {\n return stream.setHeader && isFn(stream.abort)\n}\n\nvar destroyer = function (stream, reading, writing, callback) {\n callback = once(callback)\n\n var closed = false\n stream.on('close', function () {\n closed = true\n })\n\n eos(stream, {readable: reading, writable: writing}, function (err) {\n if (err) return callback(err)\n closed = true\n callback()\n })\n\n var destroyed = false\n return function (err) {\n if (closed) return\n if (destroyed) return\n destroyed = true\n\n if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks\n if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want\n\n if (isFn(stream.destroy)) return stream.destroy()\n\n callback(err || new Error('stream was destroyed'))\n }\n}\n\nvar call = function (fn) {\n fn()\n}\n\nvar pipe = function (from, to) {\n return from.pipe(to)\n}\n\nvar pump = function () {\n var streams = Array.prototype.slice.call(arguments)\n var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop\n\n if (Array.isArray(streams[0])) streams = streams[0]\n if (streams.length < 2) throw new Error('pump requires two streams per minimum')\n\n var error\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1\n var writing = i > 0\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err\n if (err) destroys.forEach(call)\n if (reading) return\n destroys.forEach(call)\n callback(error)\n })\n })\n\n return streams.reduce(pipe)\n}\n\nmodule.exports = pump\n","const tar = require('tar-stream')\nconst pump = require('pump')\nconst fs = require('fs')\nconst path = require('path')\n\nconst win32 = (global.Bare?.platform || process.platform) === 'win32'\n\nexports.pack = function pack (cwd, opts) {\n if (!cwd) cwd = '.'\n if (!opts) opts = {}\n\n const xfs = opts.fs || fs\n const ignore = opts.ignore || opts.filter || noop\n const mapStream = opts.mapStream || echo\n const statNext = statAll(xfs, opts.dereference ? xfs.stat : xfs.lstat, cwd, ignore, opts.entries, opts.sort)\n const strict = opts.strict !== false\n const umask = typeof opts.umask === 'number' ? ~opts.umask : ~processUmask()\n const pack = opts.pack || tar.pack()\n const finish = opts.finish || noop\n\n let map = opts.map || noop\n let dmode = typeof opts.dmode === 'number' ? opts.dmode : 0\n let fmode = typeof opts.fmode === 'number' ? opts.fmode : 0\n\n if (opts.strip) map = strip(map, opts.strip)\n\n if (opts.readable) {\n dmode |= parseInt(555, 8)\n fmode |= parseInt(444, 8)\n }\n if (opts.writable) {\n dmode |= parseInt(333, 8)\n fmode |= parseInt(222, 8)\n }\n\n onnextentry()\n\n function onsymlink (filename, header) {\n xfs.readlink(path.join(cwd, filename), function (err, linkname) {\n if (err) return pack.destroy(err)\n header.linkname = normalize(linkname)\n pack.entry(header, onnextentry)\n })\n }\n\n function onstat (err, filename, stat) {\n if (pack.destroyed) return\n if (err) return pack.destroy(err)\n if (!filename) {\n if (opts.finalize !== false) pack.finalize()\n return finish(pack)\n }\n\n if (stat.isSocket()) return onnextentry() // tar does not support sockets...\n\n let header = {\n name: normalize(filename),\n mode: (stat.mode | (stat.isDirectory() ? dmode : fmode)) & umask,\n mtime: stat.mtime,\n size: stat.size,\n type: 'file',\n uid: stat.uid,\n gid: stat.gid\n }\n\n if (stat.isDirectory()) {\n header.size = 0\n header.type = 'directory'\n header = map(header) || header\n return pack.entry(header, onnextentry)\n }\n\n if (stat.isSymbolicLink()) {\n header.size = 0\n header.type = 'symlink'\n header = map(header) || header\n return onsymlink(filename, header)\n }\n\n // TODO: add fifo etc...\n\n header = map(header) || header\n\n if (!stat.isFile()) {\n if (strict) return pack.destroy(new Error('unsupported type for ' + filename))\n return onnextentry()\n }\n\n const entry = pack.entry(header, onnextentry)\n const rs = mapStream(xfs.createReadStream(path.join(cwd, filename), { start: 0, end: header.size > 0 ? header.size - 1 : header.size }), header)\n\n rs.on('error', function (err) { // always forward errors on destroy\n entry.destroy(err)\n })\n\n pump(rs, entry)\n }\n\n function onnextentry (err) {\n if (err) return pack.destroy(err)\n statNext(onstat)\n }\n\n return pack\n}\n\nfunction head (list) {\n return list.length ? list[list.length - 1] : null\n}\n\nfunction processGetuid () {\n return process.getuid ? process.getuid() : -1\n}\n\nfunction processUmask () {\n return process.umask ? process.umask() : 0\n}\n\nexports.extract = function extract (cwd, opts) {\n if (!cwd) cwd = '.'\n if (!opts) opts = {}\n\n cwd = path.resolve(cwd)\n\n const xfs = opts.fs || fs\n const ignore = opts.ignore || opts.filter || noop\n const mapStream = opts.mapStream || echo\n const own = opts.chown !== false && !win32 && processGetuid() === 0\n const extract = opts.extract || tar.extract()\n const stack = []\n const now = new Date()\n const umask = typeof opts.umask === 'number' ? ~opts.umask : ~processUmask()\n const strict = opts.strict !== false\n\n let map = opts.map || noop\n let dmode = typeof opts.dmode === 'number' ? opts.dmode : 0\n let fmode = typeof opts.fmode === 'number' ? opts.fmode : 0\n\n if (opts.strip) map = strip(map, opts.strip)\n\n if (opts.readable) {\n dmode |= parseInt(555, 8)\n fmode |= parseInt(444, 8)\n }\n if (opts.writable) {\n dmode |= parseInt(333, 8)\n fmode |= parseInt(222, 8)\n }\n\n extract.on('entry', onentry)\n\n if (opts.finish) extract.on('finish', opts.finish)\n\n return extract\n\n function onentry (header, stream, next) {\n header = map(header) || header\n header.name = normalize(header.name)\n\n const name = path.join(cwd, path.join('/', header.name))\n\n if (ignore(name, header)) {\n stream.resume()\n return next()\n }\n\n const dir = path.join(name, '.') === path.join(cwd, '.') ? cwd : path.dirname(name)\n\n validate(xfs, dir, path.join(cwd, '.'), function (err, valid) {\n if (err) return next(err)\n if (!valid) return next(new Error(dir + ' is not a valid path'))\n\n if (header.type === 'directory') {\n stack.push([name, header.mtime])\n return mkdirfix(name, {\n fs: xfs,\n own,\n uid: header.uid,\n gid: header.gid,\n mode: header.mode\n }, stat)\n }\n\n mkdirfix(dir, {\n fs: xfs,\n own,\n uid: header.uid,\n gid: header.gid,\n // normally, the folders with rights and owner should be part of the TAR file\n // if this is not the case, create folder for same user as file and with\n // standard permissions of 0o755 (rwxr-xr-x)\n mode: 0o755\n }, function (err) {\n if (err) return next(err)\n\n switch (header.type) {\n case 'file': return onfile()\n case 'link': return onlink()\n case 'symlink': return onsymlink()\n }\n\n if (strict) return next(new Error('unsupported type for ' + name + ' (' + header.type + ')'))\n\n stream.resume()\n next()\n })\n })\n\n function stat (err) {\n if (err) return next(err)\n utimes(name, header, function (err) {\n if (err) return next(err)\n if (win32) return next()\n chperm(name, header, next)\n })\n }\n\n function onsymlink () {\n if (win32) return next() // skip symlinks on win for now before it can be tested\n xfs.unlink(name, function () {\n const dst = path.resolve(path.dirname(name), header.linkname)\n if (!inCwd(dst)) return next(new Error(name + ' is not a valid symlink'))\n\n xfs.symlink(header.linkname, name, stat)\n })\n }\n\n function onlink () {\n if (win32) return next() // skip links on win for now before it can be tested\n xfs.unlink(name, function () {\n const link = path.join(cwd, path.join('/', header.linkname))\n\n fs.realpath(link, function (err, dst) {\n if (err || !inCwd(dst)) return next(new Error(name + ' is not a valid hardlink'))\n\n xfs.link(dst, name, function (err) {\n if (err && err.code === 'EPERM' && opts.hardlinkAsFilesFallback) {\n stream = xfs.createReadStream(dst)\n return onfile()\n }\n\n stat(err)\n })\n })\n })\n }\n\n function inCwd (dst) {\n return dst.startsWith(cwd)\n }\n\n function onfile () {\n const ws = xfs.createWriteStream(name)\n const rs = mapStream(stream, header)\n\n ws.on('error', function (err) { // always forward errors on destroy\n rs.destroy(err)\n })\n\n pump(rs, ws, function (err) {\n if (err) return next(err)\n ws.on('close', stat)\n })\n }\n }\n\n function utimesParent (name, cb) { // we just set the mtime on the parent dir again everytime we write an entry\n let top\n while ((top = head(stack)) && name.slice(0, top[0].length) !== top[0]) stack.pop()\n if (!top) return cb()\n xfs.utimes(top[0], now, top[1], cb)\n }\n\n function utimes (name, header, cb) {\n if (opts.utimes === false) return cb()\n\n if (header.type === 'directory') return xfs.utimes(name, now, header.mtime, cb)\n if (header.type === 'symlink') return utimesParent(name, cb) // TODO: how to set mtime on link?\n\n xfs.utimes(name, now, header.mtime, function (err) {\n if (err) return cb(err)\n utimesParent(name, cb)\n })\n }\n\n function chperm (name, header, cb) {\n const link = header.type === 'symlink'\n\n /* eslint-disable n/no-deprecated-api */\n const chmod = link ? xfs.lchmod : xfs.chmod\n const chown = link ? xfs.lchown : xfs.chown\n /* eslint-enable n/no-deprecated-api */\n\n if (!chmod) return cb()\n\n const mode = (header.mode | (header.type === 'directory' ? dmode : fmode)) & umask\n\n if (chown && own) chown.call(xfs, name, header.uid, header.gid, onchown)\n else onchown(null)\n\n function onchown (err) {\n if (err) return cb(err)\n if (!chmod) return cb()\n chmod.call(xfs, name, mode, cb)\n }\n }\n\n function mkdirfix (name, opts, cb) {\n // when mkdir is called on an existing directory, the permissions\n // will be overwritten (?), to avoid this we check for its existance first\n xfs.stat(name, function (err) {\n if (!err) return cb(null)\n if (err.code !== 'ENOENT') return cb(err)\n xfs.mkdir(name, { mode: opts.mode, recursive: true }, function (err, made) {\n if (err) return cb(err)\n chperm(name, opts, cb)\n })\n })\n }\n}\n\nfunction validate (fs, name, root, cb) {\n if (name === root) return cb(null, true)\n\n fs.lstat(name, function (err, st) {\n if (err && err.code !== 'ENOENT' && err.code !== 'EPERM') return cb(err)\n if (err || st.isDirectory()) return validate(fs, path.join(name, '..'), root, cb)\n cb(null, false)\n })\n}\n\nfunction noop () {}\n\nfunction echo (name) {\n return name\n}\n\nfunction normalize (name) {\n return win32 ? name.replace(/\\\\/g, '/').replace(/[:?<>|]/g, '_') : name\n}\n\nfunction statAll (fs, stat, cwd, ignore, entries, sort) {\n if (!entries) entries = ['.']\n const queue = entries.slice(0)\n\n return function loop (callback) {\n if (!queue.length) return callback(null)\n\n const next = queue.shift()\n const nextAbs = path.join(cwd, next)\n\n stat.call(fs, nextAbs, function (err, stat) {\n // ignore errors if the files were deleted while buffering\n if (err) return callback(entries.indexOf(next) === -1 && err.code === 'ENOENT' ? null : err)\n\n if (!stat.isDirectory()) return callback(null, next, stat)\n\n fs.readdir(nextAbs, function (err, files) {\n if (err) return callback(err)\n\n if (sort) files.sort()\n\n for (let i = 0; i < files.length; i++) {\n if (!ignore(path.join(cwd, next, files[i]))) queue.push(path.join(next, files[i]))\n }\n\n callback(null, next, stat)\n })\n })\n }\n}\n\nfunction strip (map, level) {\n return function (header) {\n header.name = header.name.split('/').slice(level).join('/')\n\n const linkname = header.linkname\n if (linkname && (header.type === 'link' || path.isAbsolute(linkname))) {\n header.linkname = linkname.split('/').slice(level).join('/')\n }\n\n return map(header)\n }\n}\n","/**\n * Valid Content-Type header values for patch operations. See\n * https://kubernetes.io/docs/tasks/run-application/update-api-object-kubectl-patch/\n * for details.\n *\n * Additionally for Server-Side Apply https://kubernetes.io/docs/reference/using-api/server-side-apply/\n * and https://kubernetes.io/docs/reference/using-api/server-side-apply/#api-implementation\n */\nexport const PatchStrategy = {\n /** Diff-like JSON format. */\n JsonPatch: 'application/json-patch+json',\n /** Simple merge. */\n MergePatch: 'application/merge-patch+json',\n /** Merge with different strategies depending on field metadata. */\n StrategicMergePatch: 'application/strategic-merge-patch+json',\n /** Server-Side Apply */\n ServerSideApply: 'application/apply-patch+yaml',\n};\n//# sourceMappingURL=patch.js.map","import { ApiException, HttpMethod, } from './api.js';\nimport { ObjectSerializer } from './serializer.js';\nimport { from, mergeMap, of } from './gen/rxjsStub.js';\nimport { PatchStrategy } from './patch.js';\n/**\n * Dynamically construct Kubernetes API request URIs so client does not have to know what type of object it is acting\n * on.\n */\nexport class KubernetesObjectApi {\n /**\n * Create a KubernetesObjectApi object from the provided KubeConfig. This method should be used rather than\n * [[KubeConfig.makeApiClient]] so we can properly determine the default namespace if one is provided by the current\n * context.\n *\n * @param kc Valid Kubernetes config\n * @return Properly instantiated [[KubernetesObjectApi]] object\n */\n static makeApiClient(kc) {\n const client = kc.makeApiClient(KubernetesObjectApi);\n client.setDefaultNamespace(kc);\n return client;\n }\n constructor(configuration) {\n /** Initialize the default namespace. May be overwritten by context. */\n this.defaultNamespace = 'default';\n /** Cache resource API response. */\n this.apiVersionResourceCache = {};\n this.configuration = configuration;\n }\n /**\n * Create any Kubernetes resource.\n * @param spec Kubernetes resource spec.\n * @param pretty If \\'true\\', then the output is pretty printed.\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized\n * dryRun directive will result in an error response and no further processing of the request. Valid values\n * are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The\n * value must be less than or 128 characters long, and only contain printable characters, as defined by\n * https://golang.org/pkg/unicode/#IsPrint.\n * @param options Optional headers to use in the request.\n * @return Promise containing the request response and [[KubernetesObject]].\n */\n async create(spec, pretty, dryRun, fieldManager, options) {\n const _config = options || this.configuration;\n // verify required parameter 'spec' is not null or undefined\n if (spec === null || spec === undefined) {\n throw new Error('Required parameter spec was null or undefined when calling create.');\n }\n const localVarPath = await this.specUriPath(spec, 'create');\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.POST);\n requestContext.setHeaderParam('Accept', 'application/json, */*;q=0.8');\n if (pretty !== undefined) {\n requestContext.setQueryParam('pretty', ObjectSerializer.serialize(pretty, 'string'));\n }\n if (dryRun !== undefined) {\n requestContext.setQueryParam('dryRun', ObjectSerializer.serialize(dryRun, 'string'));\n }\n if (fieldManager !== undefined) {\n requestContext.setQueryParam('fieldManager', ObjectSerializer.serialize(fieldManager, 'string'));\n }\n const type = await this.getSerializationType(spec.apiVersion, spec.kind);\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam('Content-Type', contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(spec, type), contentType);\n requestContext.setBody(serializedBody);\n return this.requestPromise(requestContext);\n }\n /**\n * Delete any Kubernetes resource.\n * @param spec Kubernetes resource spec\n * @param pretty If \\'true\\', then the output is pretty printed.\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized\n * dryRun directive will result in an error response and no further processing of the request. Valid values\n * are: - All: all dry run stages will be processed\n * @param gracePeriodSeconds The duration in seconds before the object should be deleted. Value must be non-negative\n * integer. The value zero indicates delete immediately. If this value is nil, the default grace period for\n * the specified type will be used. Defaults to a per object value if not specified. zero means delete\n * immediately.\n * @param orphanDependents Deprecated: please use the PropagationPolicy, this field will be deprecated in\n * 1.7. Should the dependent objects be orphaned. If true/false, the \\"orphan\\" finalizer will be\n * added to/removed from the object\\'s finalizers list. Either this field or PropagationPolicy may be\n * set, but not both.\n * @param propagationPolicy Whether and how garbage collection will be performed. Either this field or\n * OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in\n * the metadata.finalizers and the resource-specific default policy. Acceptable values are:\n * \\'Orphan\\' - orphan the dependents; \\'Background\\' - allow the garbage collector to delete\n * the dependents in the background; \\'Foreground\\' - a cascading policy that deletes all dependents\n * in the foreground.\n * @param body See [[V1DeleteOptions]].\n * @param options Optional headers to use in the request.\n * @return Promise containing the request response and a Kubernetes [[V1Status]].\n */\n async delete(spec, pretty, dryRun, gracePeriodSeconds, orphanDependents, propagationPolicy, body, options) {\n const _config = options || this.configuration;\n // verify required parameter 'spec' is not null or undefined\n if (spec === null || spec === undefined) {\n throw new Error('Required parameter spec was null or undefined when calling delete.');\n }\n const localVarPath = await this.specUriPath(spec, 'delete');\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.DELETE);\n requestContext.setHeaderParam('Accept', 'application/json, */*;q=0.8');\n if (pretty !== undefined) {\n requestContext.setQueryParam('pretty', ObjectSerializer.serialize(pretty, 'string'));\n }\n if (dryRun !== undefined) {\n requestContext.setQueryParam('dryRun', ObjectSerializer.serialize(dryRun, 'string'));\n }\n if (gracePeriodSeconds !== undefined) {\n requestContext.setQueryParam('gracePeriodSeconds', ObjectSerializer.serialize(gracePeriodSeconds, 'number'));\n }\n if (orphanDependents !== undefined) {\n requestContext.setQueryParam('orphanDependents', ObjectSerializer.serialize(orphanDependents, 'boolean'));\n }\n if (propagationPolicy !== undefined) {\n requestContext.setQueryParam('propagationPolicy', ObjectSerializer.serialize(propagationPolicy, 'string'));\n }\n // Body Params\n if (body) {\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam('Content-Type', contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(body, 'V1DeleteOptions'), contentType);\n requestContext.setBody(serializedBody);\n }\n return this.requestPromise(requestContext, 'V1Status');\n }\n /**\n * Patch any Kubernetes resource.\n * @param spec Kubernetes resource spec\n * @param pretty If \\'true\\', then the output is pretty printed.\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized\n * dryRun directive will result in an error response and no further processing of the request. Valid values\n * are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The\n * value must be less than or 128 characters long, and only contain printable characters, as defined by\n * https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests\n * (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch,\n * StrategicMergePatch).\n * @param force Force is going to \\"force\\" Apply requests. It means user will re-acquire conflicting\n * fields owned by other people. Force flag must be unset for non-apply patch requests.\n * @param patchStrategy Content-Type header used to control how the patch will be performed. See\n * See https://kubernetes.io/docs/tasks/run-application/update-api-object-kubectl-patch/\n * for details.\n * @param options Optional headers to use in the request.\n * @return Promise containing the request response and [[KubernetesObject]].\n */\n async patch(spec, pretty, dryRun, fieldManager, force, patchStrategy = PatchStrategy.StrategicMergePatch, options) {\n const _config = options || this.configuration;\n // verify required parameter 'spec' is not null or undefined\n if (spec === null || spec === undefined) {\n throw new Error('Required parameter spec was null or undefined when calling patch.');\n }\n const localVarPath = await this.specUriPath(spec, 'patch');\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PATCH);\n requestContext.setHeaderParam('Accept', 'application/json, */*;q=0.8');\n requestContext.setHeaderParam('Content-Type', patchStrategy);\n if (pretty !== undefined) {\n requestContext.setQueryParam('pretty', ObjectSerializer.serialize(pretty, 'string'));\n }\n if (dryRun !== undefined) {\n requestContext.setQueryParam('dryRun', ObjectSerializer.serialize(dryRun, 'string'));\n }\n if (fieldManager !== undefined) {\n requestContext.setQueryParam('fieldManager', ObjectSerializer.serialize(fieldManager, 'string'));\n }\n if (force !== undefined) {\n requestContext.setQueryParam('force', ObjectSerializer.serialize(force, 'boolean'));\n }\n const type = await this.getSerializationType(spec.apiVersion, spec.kind);\n // Body Params\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(spec, type), \n // TODO: use the patch content type once ObjectSerializer supports it.\n 'application/json');\n requestContext.setBody(serializedBody);\n return this.requestPromise(requestContext);\n }\n /**\n * Read any Kubernetes resource.\n * @param spec Kubernetes resource spec\n * @param pretty If \\'true\\', then the output is pretty printed.\n * @param exact Should the export be exact. Exact export maintains cluster-specific fields like\n * \\'Namespace\\'. Deprecated. Planned for removal in 1.18.\n * @param exportt Should this value be exported. Export strips fields that a user can not\n * specify. Deprecated. Planned for removal in 1.18.\n * @param options Optional headers to use in the request.\n * @return Promise containing the request response and [[KubernetesObject]].\n */\n async read(spec, pretty, exact, exportt, options) {\n const _config = options || this.configuration;\n // verify required parameter 'spec' is not null or undefined\n if (spec === null || spec === undefined) {\n throw new Error('Required parameter spec was null or undefined when calling read.');\n }\n // verify required parameter 'kind' is not null or undefined\n if (spec.kind === null || spec.kind === undefined) {\n throw new Error('Required parameter spec.kind was null or undefined when calling read.');\n }\n if (!spec.apiVersion) {\n throw new Error('Required parameter spec.apiVersion was null or undefined when calling read.');\n }\n const localVarPath = await this.specUriPath(spec, 'read');\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam('Accept', 'application/json, */*;q=0.8');\n if (pretty !== undefined) {\n requestContext.setQueryParam('pretty', ObjectSerializer.serialize(pretty, 'string'));\n }\n if (exact !== undefined) {\n requestContext.setQueryParam('exact', ObjectSerializer.serialize(exact, 'boolean'));\n }\n if (exportt !== undefined) {\n requestContext.setQueryParam('export', ObjectSerializer.serialize(exportt, 'boolean'));\n }\n return this.requestPromise(requestContext);\n }\n /**\n * List any Kubernetes resources.\n * @param apiVersion api group and version of the form /\n * @param kind Kubernetes resource kind\n * @param namespace list resources in this namespace\n * @param pretty If \\'true\\', then the output is pretty printed.\n * @param exact Should the export be exact. Exact export maintains cluster-specific fields like\n * \\'Namespace\\'. Deprecated. Planned for removal in 1.18.\n * @param exportt Should this value be exported. Export strips fields that a user can not\n * specify. Deprecated. Planned for removal in 1.18.\n * @param fieldSelector A selector to restrict the list of returned objects by their fields. Defaults to everything.\n * @param labelSelector A selector to restrict the list of returned objects by their labels. Defaults to everything.\n * @param limit Number of returned resources.\n * @param options Optional headers to use in the request.\n * @return Promise containing the request response and [[KubernetesListObject]].\n */\n async list(apiVersion, kind, namespace, pretty, exact, exportt, fieldSelector, labelSelector, limit, continueToken, options) {\n const _config = options || this.configuration;\n // verify required parameters 'apiVersion', 'kind' is not null or undefined\n if (apiVersion === null || apiVersion === undefined) {\n throw new Error('Required parameter apiVersion was null or undefined when calling list.');\n }\n if (kind === null || kind === undefined) {\n throw new Error('Required parameter kind was null or undefined when calling list.');\n }\n const localVarPath = await this.specUriPath({\n apiVersion,\n kind,\n metadata: {\n namespace,\n },\n }, 'list');\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam('Accept', 'application/json, */*;q=0.8');\n if (pretty !== undefined) {\n requestContext.setQueryParam('pretty', ObjectSerializer.serialize(pretty, 'string'));\n }\n if (exact !== undefined) {\n requestContext.setQueryParam('exact', ObjectSerializer.serialize(exact, 'boolean'));\n }\n if (exportt !== undefined) {\n requestContext.setQueryParam('export', ObjectSerializer.serialize(exportt, 'boolean'));\n }\n if (fieldSelector !== undefined) {\n requestContext.setQueryParam('fieldSelector', ObjectSerializer.serialize(fieldSelector, 'string'));\n }\n if (labelSelector !== undefined) {\n requestContext.setQueryParam('labelSelector', ObjectSerializer.serialize(labelSelector, 'string'));\n }\n if (limit !== undefined) {\n requestContext.setQueryParam('limit', ObjectSerializer.serialize(limit, 'number'));\n }\n if (continueToken !== undefined) {\n requestContext.setQueryParam('continue', ObjectSerializer.serialize(continueToken, 'string'));\n }\n return this.requestPromise(requestContext);\n }\n /**\n * Replace any Kubernetes resource.\n * @param spec Kubernetes resource spec\n * @param pretty If \\'true\\', then the output is pretty printed.\n * @param dryRun When present, indicates that modifications should not be persisted. An invalid or unrecognized\n * dryRun directive will result in an error response and no further processing of the request. Valid values\n * are: - All: all dry run stages will be processed\n * @param fieldManager fieldManager is a name associated with the actor or entity that is making these changes. The\n * value must be less than or 128 characters long, and only contain printable characters, as defined by\n * https://golang.org/pkg/unicode/#IsPrint.\n * @param options Optional headers to use in the request.\n * @return Promise containing the request response and [[KubernetesObject]].\n */\n async replace(spec, pretty, dryRun, fieldManager, options) {\n const _config = options || this.configuration;\n // verify required parameter 'spec' is not null or undefined\n if (spec === null || spec === undefined) {\n throw new Error('Required parameter spec was null or undefined when calling replace.');\n }\n const localVarPath = await this.specUriPath(spec, 'replace');\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.PUT);\n requestContext.setHeaderParam('Accept', 'application/json, */*;q=0.8');\n if (pretty !== undefined) {\n requestContext.setQueryParam('pretty', ObjectSerializer.serialize(pretty, 'string'));\n }\n if (dryRun !== undefined) {\n requestContext.setQueryParam('dryRun', ObjectSerializer.serialize(dryRun, 'string'));\n }\n if (fieldManager !== undefined) {\n requestContext.setQueryParam('fieldManager', ObjectSerializer.serialize(fieldManager, 'string'));\n }\n const type = await this.getSerializationType(spec.apiVersion, spec.kind);\n // Body Params\n const contentType = ObjectSerializer.getPreferredMediaType([]);\n requestContext.setHeaderParam('Content-Type', contentType);\n const serializedBody = ObjectSerializer.stringify(ObjectSerializer.serialize(spec, type), contentType);\n requestContext.setBody(serializedBody);\n return this.requestPromise(requestContext);\n }\n /** Set default namespace from current context, if available. */\n setDefaultNamespace(kc) {\n if (kc.currentContext) {\n const currentContext = kc.getContextObject(kc.currentContext);\n if (currentContext && currentContext.namespace) {\n this.defaultNamespace = currentContext.namespace;\n }\n }\n return this.defaultNamespace;\n }\n /**\n * Use spec information to construct resource URI path. If any required information in not provided, an Error is\n * thrown. If an `apiVersion` is not provided, 'v1' is used. If a `metadata.namespace` is not provided for a\n * request that requires one, the context default is used, if available, if not, 'default' is used.\n *\n * @param spec Kubernetes resource spec which must define kind and apiVersion properties.\n * @param action API action, see [[K8sApiAction]].\n * @return tail of resource-specific URI\n */\n async specUriPath(spec, action) {\n if (!spec.kind) {\n throw new Error('Required spec property kind is not set');\n }\n if (!spec.apiVersion) {\n spec.apiVersion = 'v1';\n }\n if (!spec.metadata) {\n spec.metadata = {};\n }\n const resource = await this.resource(spec.apiVersion, spec.kind);\n if (!resource) {\n throw new Error(`Unrecognized API version and kind: ${spec.apiVersion} ${spec.kind}`);\n }\n if (resource.namespaced && !spec.metadata.namespace && action !== 'list') {\n spec.metadata.namespace = this.defaultNamespace;\n }\n const parts = [this.apiVersionPath(spec.apiVersion)];\n if (resource.namespaced && spec.metadata.namespace) {\n parts.push('namespaces', encodeURIComponent(String(spec.metadata.namespace)));\n }\n parts.push(resource.name);\n if (action !== 'create' && action !== 'list') {\n if (!spec.metadata.name) {\n throw new Error('Required spec property name is not set');\n }\n parts.push(encodeURIComponent(String(spec.metadata.name)));\n }\n return parts.join('/').toLowerCase();\n }\n /** Return root of API path up to API version. */\n apiVersionPath(apiVersion) {\n const api = apiVersion.includes('/') ? 'apis' : 'api';\n return '/' + [api, apiVersion].join('/');\n }\n /**\n * Get metadata from Kubernetes API for resources described by `kind` and `apiVersion`. If it is unable to find the\n * resource `kind` under the provided `apiVersion`, `undefined` is returned.\n *\n * This method caches responses from the Kubernetes API to use for future requests. If the cache for apiVersion\n * exists but the kind is not found the request is attempted again.\n *\n * @param apiVersion Kubernetes API version, e.g., 'v1' or 'apps/v1'.\n * @param kind Kubernetes resource kind, e.g., 'Pod' or 'Namespace'.\n * @return Promise of the resource metadata or `undefined` if the resource is not found.\n */\n async resource(apiVersion, kind, options) {\n const _config = options || this.configuration;\n // verify required parameter 'apiVersion' is not null or undefined\n if (apiVersion === null || apiVersion === undefined) {\n throw new Error('Required parameter apiVersion was null or undefined when calling resource');\n }\n // verify required parameter 'kind' is not null or undefined\n if (kind === null || kind === undefined) {\n throw new Error('Required parameter kind was null or undefined when calling resource');\n }\n if (this.apiVersionResourceCache[apiVersion]) {\n const resource = this.apiVersionResourceCache[apiVersion].resources.find((r) => r.kind === kind);\n if (resource) {\n return resource;\n }\n }\n const localVarPath = this.apiVersionPath(apiVersion);\n const requestContext = _config.baseServer.makeRequestContext(localVarPath, HttpMethod.GET);\n requestContext.setHeaderParam('Accept', 'application/json, */*;q=0.8');\n try {\n const getApiResponse = await this.requestPromise(requestContext, 'V1APIResourceList');\n this.apiVersionResourceCache[apiVersion] = getApiResponse;\n return this.apiVersionResourceCache[apiVersion].resources.find((r) => r.kind === kind);\n }\n catch (e) {\n if (e instanceof Error) {\n e.message = `Failed to fetch resource metadata for ${apiVersion}/${kind}: ${e.message}`;\n }\n throw e;\n }\n }\n async getSerializationType(apiVersion, kind) {\n if (apiVersion === undefined || kind === undefined) {\n return 'KubernetesObject';\n }\n // Types are defined in src/gen/api/models with the format \"\".\n // Version and Kind are in PascalCase.\n const gv = this.groupVersion(apiVersion);\n const version = gv.version.charAt(0).toUpperCase() + gv.version.slice(1);\n return `${version}${kind}`;\n }\n groupVersion(apiVersion) {\n const v = apiVersion.split('/');\n return v.length === 1\n ? {\n group: 'core',\n version: apiVersion,\n }\n : {\n group: v[0],\n version: v[1],\n };\n }\n async requestPromise(requestContext, type, options) {\n var _a, _b, _c;\n const _config = options || this.configuration;\n // Apply auth methods\n const authMethod = _config.authMethods.BearerToken;\n if (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication) {\n await (authMethod === null || authMethod === void 0 ? void 0 : authMethod.applySecurityAuthentication(requestContext));\n }\n const defaultAuth = ((_a = options === null || options === void 0 ? void 0 : options.authMethods) === null || _a === void 0 ? void 0 : _a.default) || ((_c = (_b = this.configuration) === null || _b === void 0 ? void 0 : _b.authMethods) === null || _c === void 0 ? void 0 : _c.default);\n if (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication) {\n await (defaultAuth === null || defaultAuth === void 0 ? void 0 : defaultAuth.applySecurityAuthentication(requestContext));\n }\n // build promise chain\n let middlewarePreObservable = from(Promise.resolve(requestContext));\n for (const middleware of this.configuration.middleware) {\n middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx) => middleware.pre(ctx)));\n }\n return middlewarePreObservable\n .pipe(mergeMap((ctx) => this.configuration.httpApi.send(ctx)))\n .pipe(mergeMap((response) => {\n let middlewarePostObservable = of(response);\n for (const middleware of this.configuration.middleware) {\n middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp) => middleware.post(rsp)));\n }\n return middlewarePostObservable.pipe((rsp) => this.processResponse(rsp, type));\n }))\n .toPromise();\n }\n async processResponse(response, type) {\n const contentType = ObjectSerializer.normalizeMediaType(response.headers['content-type']);\n if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {\n const data = ObjectSerializer.parse(await response.body.text(), contentType);\n if (type === undefined) {\n type = await this.getSerializationType(data.apiVersion, data.kind);\n }\n if (!type) {\n throw new Error('Unable to determine type of Kubernetes type of response.');\n }\n return ObjectSerializer.deserialize(data, type);\n }\n throw new ApiException(response.httpStatusCode, 'Unsuccessful HTTP Request', await response.getBodyAsAny(), response.headers);\n }\n}\n//# sourceMappingURL=object.js.map","/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '

' + func(text) + '

';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

fred, barney, & pebbles

'\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '